正则表达式匹配括号之间的任何内容

时间:2017-10-23 15:14:35

标签: java regex

我正在使用正则表达式用更简单的模式替换特定模式。

我需要从两个括号中取出所有字符,空格,并在捕获组中使用它们。但是,括号之间的字符也可能是括号。

以下是我想要匹配的两个例子:

+?

我当前的正则表达式:libaums-0.5.0.aar

当消息中没有括号时,它匹配简单模式。但是当有括号时,它会在第一个右括号处停止捕获组。我确定这是因为我正在使用Metadata.xml,但我不确定如何指定搜索应该继续。

我用一些例子创建了这个正则表达式。 http://regexr.com/3h15u

1 个答案:

答案 0 :(得分:5)

您可以使用此正则表达式:

\.message\((?s)(.+?)\)\s*(?:\.(?:log|build)\(\)\s*)+\s*;

在捕获的组#1中捕获()之间的文本

RegEx Demo

在Java中使用:

final String regex = "\\.message\\((?s)(.+?)\\)\\s*(?:\\.(?:log|build)\\(\\)\\s*)+\\s*;";