Java 正则表达式不工作 - 为什么?

标签 java regex string arraylist regex-lookarounds

match.matches() 返回 false。这很奇怪,因为如果我使用这个正则表达式并测试字符串到 rubular.com,则会显示两个匹配项。我做错了什么?

    Pattern regex = Pattern.compile("FTW(((?!ODP).)+)ODP");
    Matcher match = regex.matcher("ZZZMMMJJJOOFTWZMJZMJODPZZZMMMJJJOOOFTWMZJOMZJOMZJOODPZZZMMMJJJOO");

    if (match.matches()) {
        System.out.println("match found");
    }
    else {
        System.out.println("match not found");
    }

最佳答案

Matcher.matches返回整个区域是否与模式匹配。

尝试使用find反而。 (当然,对于您的示例,这效果很好。)

关于Java 正则表达式不工作 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1385946/

相关文章:

c# - 允许以大写字母开头,后跟小写字母的正则表达式是什么?

javascript - 使用正则表达式捕获字体标签内的文本

java - 将字符串从字符串数组转换为整数

c - Ncurses - 当函数调用中存在多个参数时,为什么不使用 mvprintw() 打印字符串不起作用?

javascript - 在 $.each() 中搜索并替换

string - 寻找最少数量的子串来表示一组字符串

java - 单击 Android 中的元素不会显示正确的值

java - 在 Java 中使用 ScheduleAtFixedRate 迭代列表

java - 待办事项列表示例对我不起作用

java - 在 Android 上查找音高