首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java中的正则表达式否定特定字符串的第一次出现。

使用java中的正则表达式否定特定字符串的第一次出现。
EN

Stack Overflow用户
提问于 2013-02-28 10:08:48
回答 2查看 130关注 0票数 0

在所附代码中,我试图修改字符串toParse =“爱爱库爱爱库”;并获得输出

结果爱爱结果爱爱

但我所用的模式

爱^顾*

会给我输出结果

结果爱我结果爱我

ie关于'k‘或'o’的第一次出现它的分裂,但我的意图是在第一个上出现"koo",它必须分裂,这样我才能得到想要的结果。简而言之,我的意图是创建一个直到第一次出现"koo".的模式。

我还附加了我的java代码。

代码语言:javascript
复制
public static void main(String[] args) {

    // regular expression here
    Pattern pattern = Pattern.compile("love[^koo]*");
    // String here
    String toParse = "love love koo love love koo";

    Matcher matcher = pattern.matcher(toParse);

    boolean found = false;
    while (matcher.find()) {

        System.out.println("Result "
                + toParse.substring(matcher.start(), matcher.end()));
        found = true;
    }
    if (!found) {
        // console.format("No match found.%n");
        System.out.println("No match found");
    }

}
EN

回答 2

Stack Overflow用户

发布于 2013-02-28 10:15:44

如果我正确地理解了你的问题,并且你想把所有的事情都弄清楚,你的判断应该是:

代码语言:javascript
复制
"(.+?)koo"

你的结果是在小组(1)

代码语言:javascript
复制
while (matcher.find()) {
        System.out.println("Result "+ matcher.group(1));
        found = true;
}
票数 2
EN

Stack Overflow用户

发布于 2013-02-28 10:39:18

保持简单,分裂..。

代码语言:javascript
复制
    String str = "love love koo love love koo";
    for (String s : str.split("koo *")) {
        System.out.print("Result " + s);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15132718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档