3

我想提取一些没有星号的数字,这里是例子:

1
0
0*1543
27 123*5464
11 1007*
998*7586
13
997*686

我已经尝试过使用这个正则表达式和其他一些,但它们都没有奏效:

(\d+)[^\*]

我正在寻找的是获取所有数字,除非它们后面跟着一个星号。以下是输出的样子:

1
0
27
11
13

我的计划是编写正则表达式并使用组来提取这些值。我正在使用这个网站来测试我的正则表达式。

更新:我不是在寻找匹配 * 之后的数字,这意味着我只想要行首的数字。谢谢

更新二:

Aftert 进一步深入研究正则表达式给出的匹配项(来自 Dr.Kameleon)

(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9])) 

我得到一个额外的匹配,因为它可以在这里看到:

http://regexr.com?30l69

我不想505222*123 505. 所有其他比赛都完美匹配。

看起来这个正则表达式需要小调整,但我无法调整它,即(?<!\*)(?<![0-9])(?<!\\s)([0-9]+(?!\*)(?![0-9]))

4

1 回答 1

5

试试这个:(演示:http ://regexr.com?30l47 )

([0-9]+(?!\*)(?![0-9]))

或者这个(如果你只想要第一部分,如你的例子) - http://regexr.com?30l4a

(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
于 2012-04-14T20:35:01.427 回答