双引号的Java正则表达式
我必须使用正则表达式检查字符串:双引号的Java正则表达式,java,regex,Java,Regex,我必须使用正则表达式检查字符串: String a = "ABC(hello) or DEF("indianbatsmen") or GHK(welcome); 在这里,我必须检查字段DEF是否有双引号 我试过: if(!a.contains(“DEF(\'w\”){} 它不起作用。试试这个: boolean foundMatch = false; Pattern regex = Pattern.compile("\\bDEF\\(\"[^\"]+\"\\)\\s+"); Matcher re
String a = "ABC(hello) or DEF("indianbatsmen") or GHK(welcome);
在这里,我必须检查字段DEF是否有双引号
我试过:
if(!a.contains(“DEF(\'w\”){}
它不起作用。试试这个:
boolean foundMatch = false;
Pattern regex = Pattern.compile("\\bDEF\\(\"[^\"]+\"\\)\\s+");
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.find();
并不是说如果字符串包含转义引号,此将失败。看起来您已经尝试将正则表达式语法用于
\w
-但您可能希望它是\w+
(如果引号之间至少需要一个字符)或\w*
(如果允许0个或更多字符). 您还需要使用\(
对括号进行转义
接下来,您只需要使用正则表达式方法。
.contains
只是做一个简单的字符串搜索。使用模式
和匹配器
类在这里会有所帮助。为什么必须使用正则表达式?这个问题措辞不当,标题根本不相关。它将从downvot中受益由于String.contains()与正则表达式无关,因此它会在字符串中搜索给定的charSeq,而无需正则表达式编译。