【发布时间】:2012-04-14 20:30:11
【问题描述】:
我想提取一些不带星号的数字,示例如下:
1
0
0*1543
27 123*5464
11 1007*
998*7586
13
997*686
我已经尝试过使用这个正则表达式和其他一些,但它们都不起作用:
(\d+)[^\*]
我正在寻找的是获取所有数字,除非它们后面跟着一个星号。下面是输出的样子:
1
0
27
11
13
我的计划是编写正则表达式并使用组来提取这些值。我正在使用this site 来测试我的正则表达式。
更新: 我不是在寻找匹配 * 之后的数字,这意味着我只想要行首的数字。谢谢
更新二:
之后进一步挖掘正则表达式给出的匹配(来自 Dr.Kameleon)
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
我得到了一个额外的匹配,可以在这里看到:
我不想在 222*123 505 中匹配 505 。所有其他比赛都完美匹配。
看起来这个正则表达式需要稍微调整,但我无法调整它,即(?<!\*)(?<![0-9])(?<!\\s)([0-9]+(?!\*)(?![0-9]))
【问题讨论】: