java - 正则表达式匹配器 - 未找到匹配项

标签 java regex matcher

我正在尝试使用正则表达式从字符串中提取值并将其用于进一步处理。 我的字符串是:

String tring =Format_FRMT: <<<$gen>>>(((valu e)))    <<<$gen>>>(((value 13231)))
<<<$gen>>>(((value 13231)))

我制作的正则表达式模式是:

Pattern p = Pattern.compile("\\<{3}\\$([\\w ]+)\\>{3}\\s?\\({3}([\\w ]+)\\){3}");

当我运行整个程序时

Matcher m = p.matcher(tring);

   String[] try1 = new String[m.groupCount()];

    for(int i = 1 ; i<= m.groupCount();i++)
    {
        try1[i] = m.group(i);
        //System.out.println("group - i" +try1[i]+"\n");
    }

我正在获取

No match found

有人可以帮我解决这个问题吗?这究竟是哪里出了问题? 我的第一个目标只是看看我是否能够获得相应组中的值。如果工作正常,那么我想使用它们进行进一步处理。

谢谢

最佳答案

下面是如何使用 find() 获取所需的所有值的示例。 :

String tring = "CHARDATA_FRMT: <<<$gen>>>(((valu e)))    <<<$gen>>>(((value 13231)))\n<<<$gen>>>(((value 13231)))";
Pattern p = Pattern.compile("<{3}\\$([\\w ]+)>{3}\\s?\\({3}([\\w ]+)\\){3}");
Matcher m = p.matcher(tring);
while (m.find()){
    System.out.println("Gen: " + m.group(1) + ", and value: " + m.group(2));
}

参见IDEONE demo

请注意,您不必转义 <>在 Java 正则表达式中。

关于java - 正则表达式匹配器 - 未找到匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188251/

相关文章:

ruby - Ruby 正则表达式的问题

java - 如何从文件名中提取日期部分?

Java Matcher 慢速正则表达式

Java模式的使用

java - 重定向不适用于 Spring Boot 应用程序中的 Thymeleaf

java - 我正在尝试创建一个 MVP(最小可行产品)。 Google App Engine 是一个很好用的框架吗?

java - netbeans构建项目错误

java - 我的 android java 按钮显示并动画,但由于某种原因我的代码从未执行

javascript - 协助使用正则表达式 Javascript

regex - 验证字符串只包含字母