我需要将以下字符串与正则表达式匹配:
texthere("othertext")
字符串前后可能有一些空格。
我尝试做的是这个(s
是String
):
s.matches("\\s*\\w*(\"\\w*\")\\s*");
然而,这不起作用。然后我尝试了几件事,直到我发现以下内容确实有效:
s.matches("\\s*\\w*(.*\\w*.*)\\s*");
这意味着\"
部分无法识别为"
。我该如何解决这个问题?
答案 0 :(得分:3)
你只是忘了逃避()
。
s.matches("\\s*\\w*\\(\"\\w*\"\\)\\s*");
没有逃脱,他们是一个捕获组织。
答案 1 :(得分:0)
这里使用转义字符\
来转义已为正则表达式格式保留的字符
例如
. * ? + ( ) [ ] $ ^ { }
示例代码:
Pattern p = Pattern.compile("(\\(\"\\s*\\w*\\s*\"\\))");
Matcher m = p.matcher("texthere(\"entry\")");
if(m.find()) {
System.out.println("found");
}