我在尝试验证此字符串时遇到问题...
因此,用户选择一个模板:q( )
。然后,用户填写括号内的内容,最终可能会这样:
Q(A,B,C)
我尝试了使用正则表达式来验证此String的不同方法,但它仍然会返回“否”的答案。我认为我的正则表达式中的问题是"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(”和“)”确实有另一种方法,但我更喜欢在regex中使用它而不需要删除字符串中的字符。
有什么建议吗?
答案 0 :(得分:1)
您需要转义括号(并转义转义字符以便编译)并在末尾添加+
以指示一个或多个字符
String regex2 = "q\\([a-zA-Z0-9,']+\\)";
您可以在Pattern
javadoc中阅读正则表达式中每个字符的含义。