Java 验证正则表达式中包含模板的字符串
我在尝试验证此字符串时遇到问题 因此,用户选择一个模板:Java 验证正则表达式中包含模板的字符串,java,regex,Java,Regex,我在尝试验证此字符串时遇到问题 因此,用户选择一个模板:q()。然后,用户填写括号内的内容,结果如下: q(a、b、c) 我尝试过使用regex验证这个字符串的不同方法,但它总是返回“否”的答案。我认为问题在于我的正则表达式中的“q”(和”),因为我不确定它应该是什么样子 下面是一段代码: String data2 = "q(a,b,c)"; String regex2 = "q([a-zA-Z0-9,'])"; if(data2.matches(regex2)){ System.o
q()
。然后,用户填写括号内的内容,结果如下:
q(a、b、c)
我尝试过使用regex验证这个字符串的不同方法,但它总是返回“否”的答案。我认为问题在于我的正则表达式中的“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(“and”)”,但我宁愿在正则表达式中使用它,而不需要删除字符串中的字符
有什么建议吗?您需要对括号进行转义(并转义转义字符以便编译),然后在末尾添加一个
+
,以指示一个或多个字符
String regex2 = "q\\([a-zA-Z0-9,']+\\)";
您可以读取
模式中正则表达式中每个字符的含义
括号在正则表达式中具有特殊意义…是的,当我在不同的字符串上处理regesx时,我意识到了这一点。只是不知道我应该如何在regexI中声明“q(“and”)”,我扣动扳机太快,没有扣动。你赢了。@Floris在stackoverflow上,每个人都是赢家。啊,原来是“\\”。没有意识到在字母后面加“\\”是可能的。我确实有一个与你的非常类似的解决方案,但没有想到“q”部分。