我在尝试验证此字符串时遇到问题...
因此,用户选择一个模板:q( )
。然后,用户填写括号内的内容,最终结果如下:
q(a,b,c)
我尝试了使用正则表达式来验证此字符串的不同方法,但它始终返回答案“否”。我相信问题出在我的正则表达式中的 "q("
和 ")"
,因为我不确定它应该是什么样子。
这是代码片段:
String data2 = "q(a,b,c)";
String regex2 = "q([a-zA-Z0-9,'])";
if(data2.matches(regex2)){
System.out.println("yes");
}
else{
System.out.println("No");
}
我确实有另一种方法,可以删除 data2 字符串中的“q(”和“)”,但我宁愿将其放在正则表达式中,而不需要删除字符串中的字符。
有什么建议吗?
最佳答案
您需要转义括号(并转义转义字符以便编译)并在末尾添加一个 +
以指示一个或多个字符
String regex2 = "q\\([a-zA-Z0-9,']+\\)";
您可以在Pattern
javadoc中读取正则表达式中每个字符的含义。 .
关于java - 验证正则表达式中包含模板的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20590290/