当前位置:  开发笔记 > 编程语言 > 正文

否定Java正则表达式中的文字字符串

如何解决《否定Java正则表达式中的文字字符串》经验,为你挑选了1个好方法。

所以正则表达式似乎与最长的匹配相匹配.例如:

public static void main(String[] args) {
    String s = "ClarkRalphKentGuyGreenGardnerClarkSupermanKent";
    Pattern p = Pattern.compile("Clark.*Kent", Pattern.CASE_INSENSITIVE);
    Matcher myMatcher = p.matcher(s);
    int i = 1;
    while (myMatcher.find()) {
        System.out.println(i++ + ". " + myMatcher.group());
    }
}

生成输出

    ClarkRalphKentGuyGreenGardnerClarkSupermanKent

我想要这个输出

    ClarkRalphKent

    ClarkSupermanKent

我一直在尝试以下模式:

 Pattern p = Pattern.compile("Clark[^((Kent)*)]Kent", Pattern.CASE_INSENSITIVE);

这不起作用,但你看到我想说的话.我想要从Clark到Kent的字符串不包含任何Kent的字符串.

这个字符串:

ClarkRalphKentGuyGreenGardnerBruceBatmanKent

应该产生输出

    ClarkRalphKent

Gareth Davis.. 6

贪心vs不情愿是你的朋友.

尝试: Clark.+?Kent



1> Gareth Davis..:

贪心vs不情愿是你的朋友.

尝试: Clark.+?Kent

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有