验证在regex中包含模板的字符串

时间:2013-12-15 01:35:37

标签: java regex

我在尝试验证此字符串时遇到问题...

因此,用户选择一个模板: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中使用它而不需要删除字符串中的字符。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您需要转义括号(并转义转义字符以便编译)并在末尾添加+以指示一个或多个字符

String regex2 = "q\\([a-zA-Z0-9,']+\\)";

您可以在Pattern javadoc中阅读正则表达式中每个字符的含义。