3
我想提取一些数字是不跟星,这里是例子:匹配字符
1
0
0*1543
27 123*5464
11 1007*
998*7586
13
997*686
我已经使用这个正则表达式尝试多一些,但没有一次成功:
(\d+)[^\*]
我在找的是得到所有数字,除非它们后面跟着一颗星星。这里是如何输出应该是这样的:
1
0
27
11
13
我的计划是写正则表达式和使用组来提取这些值。我正在使用this site来测试我的正则表达式。
更新: 我不寻找匹配*后的数字,这意味着我只想在行首的数字。感谢
更新II:
Aftert进一步diging成(从Dr.Kameleon)
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
我得到一个额外的匹配由正则表达式匹配给出,因为它可以在这里看到:
我不想匹配505
在222*123 505
。所有其他比赛都完美匹配。
貌似这个表达式需要小的调整,但我无法调整它即(?<!\*)(?<![0-9])(?<!\\s)([0-9]+(?!\*)(?![0-9]))
这几乎就是它,只是我不想匹配*之后的数字,这意味着我只需要在行首的数字。谢谢 – London 2012-04-14 20:39:01
@伦敦看看;我刚刚更新了它。 ;-) – 2012-04-14 20:39:21
@London当然,我想,你想要的也可以通过用'“*”'和'“”'(空格)分割字符串然后得到数组的第一个元素来完成......但是我决不是一个java大师,所以我会把它留给你... :-) – 2012-04-14 20:40:29