java - 验证正则表达式中包含模板的字符串

标签 java regex

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

因此,用户选择一个模板: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/

相关文章:

java.io.InvalidClassException : org. apache.spark.internal.io.HadoopMapReduceCommitProtocol;本地类不兼容

java - 使用 Camel Rest 时如何记录请求负载?

regex - Notepad++ 正则表达式组捕获语法

javascript - 任何不是 - 或任何单词字符的正则表达式

java - 数据结构设计设计

java - 静态变量失去其值

javascript - 正则表达式匹配时间范围

regex - 用于替换 URL block 中下划线后的所有内容的正则表达式

javascript - 在 Razor 页面上使用正则表达式验证电子邮件地址

java - 使用Gradle排除Spring Boot Jar中的application.properties