str = "sysparm_type=list_data&count=20&start=0&p=incident%3Bq%3Aactive%3Dtrue%5Epriority%3D1%5EEQ&table=incident"
我已经为上面的字符串编写了一个正则表达式,但我只想在“优先级”子字符串不存在时才匹配它。这是我的正则表达式:
.*sysparm_type=list_data&count=(\d+)&start=(\d+)&p=incident.*active.*true^((?!priority).)*$&table=incident
但这部分 ^((?!priority).)*$ 正则表达式不起作用。
最佳答案
插入符 ^ 和 $ 匹配整个字符串的开头和结尾。非常贪心。
如果您只检查配置文件字符串是否存在,不是会更简单、更容易阅读和维护吗?
String pattern = "((?!priority).)*"; <== pasted from above, prob not valid regex
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value" );
} else {
System.out.println("NO MATCH");
}
关于java - 仅当子字符串不存在时才匹配字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019918/