在特定模式之前匹配任何内容

beg*_*er_ 3 java regex

我有几乎可以包含任何字符的字符串,包括(_- %等等.字符串以(\d{1,2}).结尾.例如.带有1或2位数的括号.我现在想要2个捕获组,2个数字和括号前的所有内容.

目前我有:

final Pattern pattern = Pattern.compile("^([-%\\(\\)_/= a-zA-Z\\d]+)\\((\\d{1,2})\\)$");
Run Code Online (Sandbox Code Playgroud)

但这并不符合一切.我想替换char组.*但没有匹配(\d{1,2})字符串的末尾.我怎样才能做到这一点?

Men*_*ena 6

如果我理解你的问题,你可以使用一个不情愿的量词.*?而不是你贪婪的量词.*来在第二个catpure组之前不情愿地匹配所有内容.