Java 正则表达式模式不工作

Java 正则表达式模式不工作,java,regex,string,Java,Regex,String,我想在字符串中找到以下模式: "{xxxxx$ppp>5}&&{xxxxx.ppp==5}" 我使用正则表达式: "[{a-z$.a-z==><0-9}||&&{a-z$.a-z==><0-9}]" “[{a-z$.a-z==> 通过查看您以前的代码,我假设您希望xxx和ppp为任意字母字符串,5为任意数字字符串。试试这个正则表达式: // prints true System.out.println("{xxxxx$ppp>

我想在字符串中找到以下模式:

"{xxxxx$ppp>5}&&{xxxxx.ppp==5}"
我使用正则表达式:

"[{a-z$.a-z==><0-9}||&&{a-z$.a-z==><0-9}]"
“[{a-z$.a-z==>
通过查看您以前的代码,我假设您希望xxx和ppp为任意字母字符串,5为任意数字字符串。

试试这个正则表达式:

// prints true
System.out.println("{xxxxx$ppp>5}&&{xxxxx.ppp==5}"
      .matches("\\{[a-z]+\\$[a-z]+>[0-9]\\}&&\\{[a-z]+\\.[a-z]+==[0-9]\\}"));
编辑:(回应OP下面的评论)

String input=“{xxxxx$ppp>5}&&{xxxxx.ppp==5}”;

Matcher Matcher=Pattern.compile(“\\{[a-z0-9]+[$.][a-z0-9]+[>请检查一些你想找到确切的模式吗?{xxxxx\\$ppp>5}(&&&&)?{xxxxx\\\$ppp==5}将匹配字符串“{xxxxx$ppp>5}&{xxxxx.ppp==5}”和“{xxxxx$ppp>5}{xxxxx.ppp==5}”,当我用给定字符串传递字符串时,我得到以下字符串“{xxxxx$ppp==5}“,它不能识别中间的“&&”符号,尽管我在正则表达式模式中给出了它。”&&&“应该是te字符串的一部分,如“{xxxxx$ppp>5}&&{xxxxx.ppp==5}”我在线程“main”java.util.regex.PatternSyntaxException中得到了以下异常:{[a-zA-Z]+\$[a-zA-Z]+>5}(&&)?{[0-9]+\.[a-zA-Z]==0-9]+}”java.util.regex.Pattern.error(未知源代码)java.util.regex.Pattern.closure(未知源代码)java.util.regex.Pattern.sequence(未知源代码)java.util.regex.Pattern.compile(未知源代码)java.util.regex.Pattern.expr(未知源代码)java.util.regex.Pattern.compile(未知源代码)中java.util.regex.regex.Pattern.Pattern,我的坏。嘿,它仍然抛出异常。我自己找到了解决方案。正确的正则表达式是“[{a-zA-Z$。a-zA-Z==>您的正则表达式是一个非常可疑的字符类。它将匹配字符串的各个字符,但不匹配字符串本身。正确的正则表达式是”[{a-zA-Z$。a-zA-Z==>您意识到使用
[]
around使其成为一个正则表达式字符类?这意味着正则表达式也可能与输入字符串反向匹配(或任何其他排列)。正则表达式使用“&&&”获取所有内容,但我想要的只是不包括&&&的模式。即{}内的所有内容@Phalguni,在你的Qn中,你清楚地说:
我用了这个正则表达式……但是字符串中没有“&&”这个字符,现在你自相矛盾地说,
它用“&&&”
获取所有东西。我想你需要休息一下:)对不起,我的错误:)我发现了这次我想这个“\{[a-z0-9]+(\$\\\\\\\\\\\\\\\\\\\\\\\\\.[a-z0-9]+(>|
// prints true
System.out.println("{xxxxx$ppp>5}&&{xxxxx.ppp==5}"
      .matches("\\{[a-z]+\\$[a-z]+>[0-9]\\}&&\\{[a-z]+\\.[a-z]+==[0-9]\\}"));
String input = "{xxxxx$ppp>5}&&{xxxxx.ppp==5}";
Matcher matcher = Pattern.compile("\\{[a-z0-9]+[$.][a-z0-9]+[><=]=?[0-9]\\}")
                         .matcher(input);
while (matcher.find()) {
    System.out.println(matcher.group()); // {xxxxx$ppp>5}
}                                        // {xxxxx.ppp==5}