我必须使用正则表达式检查字符串:
String a = "ABC(hello) or DEF("indianbatsmen") or GHK(welcome);
在这里,我将不得不检查字段DEF是否有双引号。
我尝试过:
if(!a.contains("DEF(\"w\")")){ }
它没有用。
答案 0 :(得分:2)
试试这个:
boolean foundMatch = false;
Pattern regex = Pattern.compile("\\bDEF\\(\"[^\"]+\"\\)\\s+");
Matcher regexMatcher = regex.matcher(subjectString);
foundMatch = regexMatcher.find();
如果您的字符串包含转义引号,则不会失败。
答案 1 :(得分:0)
看起来您已经尝试使用\w
的正则表达式语法 - 但您可能希望它是\w+
(如果引号之间至少需要一个字符)或{{ 1}}(如果允许0个或更多字符)。您还希望使用\w*
转义括号。
接下来,您只需要使用正则表达式方法。 \(
只是进行简单的字符串搜索。使用.contains
和Pattern
类将有助于此处。