制作C#RegEx Match会返回意外数据

时间:2011-11-24 10:43:54

标签: c# regex

String:  (0/0/26)*15
MyRegEx: (?<!\*)\d+

我正在尝试匹配所有数字,除非前面有*(例如:0,0,26) 当我使用带有向后限定符的正则表达式时,匹配0,0,26和5。

我在哪里弄乱?

由于

3 个答案:

答案 0 :(得分:4)

因为'5'中的'15'之前没有'*'

围绕\d+模式包裹word boundaries

(?<!\*)\b\d+\b

获得理想的结果。

答案 1 :(得分:1)

您正在匹配前面没有'*'的一个或多个数字。这就是你匹配5(而不是15)的原因。

更改为:

(?<![\*\d])\d+

答案 2 :(得分:0)

5是一个字符,不在*后面,所以匹配

长版本:

您的模式搜索不在*

后面的数字字符

你必须改变你的模式