我想在字符串中找到以下模式:
"{xxxxx$ppp>5}&&{xxxxx.ppp==5}"
我使用了正则表达式:
"[{a-z$.a-z==><0-9}||&&{a-z$.a-z==><0-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]\\}"));
编辑:(回应以下OP的评论)
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}
\\{[a-zA-Z]+\\$[a-zA-Z]+>5}&&{[0-9]+\\.[a-zA-Z]+==[0-9]+\\}
通过查看您之前的问题,我假设您希望 xxx 和 ppp 是任何字母字符串,而 5 是任何数字字符串。