双引号的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,而无需正则表达式编译。