如何通过正则表达式从字符串上的多个相同字符中查找一个字符

时间:2018-09-18 11:53:03

标签: java regex

示例: 尊敬的先生,先生,员工是(PM / 23333999)10)我要谢谢你。(MA / IERPER)我想辞职。

您好,先生

regex:\ d {1,2} +(?:(\)))

结果: 10) 99)

我可以使用什么正则表达式模式来从拆分字符串中仅获得结果“ 10)

3 个答案:

答案 0 :(得分:3)

您的模式等于\d{1,2}+\),即您的模式消耗并返回)

您可以使用

\d{1,2}(?=\))

其中(?=\))是一个positive lookahead,它将需要)的存在,但不会在比赛中返回。另外,请注意,这里的{1,2}+与非占有性贪婪{1,2}量词的行为相同(因为没有其他方法可以匹配)之前的字符串),因此无需添加+

请参见regex demo

在Java中,将其声明为

String regex = "\\d{1,2}(?=\\))";

答案 1 :(得分:0)

您可以这样做:

^.*\) (.*) i want t.*$

但是,让我们改进正则表达式:

^.*\([^\)]*\) (\d+\)).*$

答案 2 :(得分:0)

由于您说的是仅匹配10),请尝试以下操作

\d{1,2}+\)(?!.*\d{1,2}+\))

demo and explantion here