我想提取一些没有星号的数字,下面是例子:
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]))
我得到了一个额外的匹配项,如下所示:
我不想匹配 505
在 222*123 505
.所有其他比赛都完美匹配。
看起来这个正则表达式需要稍微调整一下,但我无法调整它,即 (?<!\*)(?<![0-9])(?<!\\s)([0-9]+(?!\*)(?![0-9]))
最佳答案
试试这个:(演示:http://regexr.com?30l47)
([0-9]+(?!\*)(?![0-9]))
或这个(如果您只想要第一部分,如您的示例所示)- http://regexr.com?30l4a :
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
关于java - Java正则表达式中的匹配字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10157112/