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

时间:2014-07-30 10:20:59

标签: java regex

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

目前我有:

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

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

1 个答案:

答案 0 :(得分:6)

如果我理解了您的问题,您可以使用不情愿的量词.*?代替您的贪心量词.*,以便在第二个catpure组之前匹配不情愿的所有内容。