我正在使用正则表达式用更简单的模式替换特定模式。
我需要从两个括号中取出所有字符,空格,并在捕获组中使用它们。但是,括号之间的字符也可能是括号。
以下是我想要匹配的两个例子:
+?
我当前的正则表达式:libaums-0.5.0.aar
当消息中没有括号时,它匹配简单模式。但是当有括号时,它会在第一个右括号处停止捕获组。我确定这是因为我正在使用Metadata.xml
,但我不确定如何指定搜索应该继续。
我用一些例子创建了这个正则表达式。 http://regexr.com/3h15u
答案 0 :(得分:5)
您可以使用此正则表达式:
\.message\((?s)(.+?)\)\s*(?:\.(?:log|build)\(\)\s*)+\s*;
在捕获的组#1中捕获(
和)
之间的文本
在Java中使用:
final String regex = "\\.message\\((?s)(.+?)\\)\\s*(?:\\.(?:log|build)\\(\\)\\s*)+\\s*;";