Java正则表达式中的字符匹配
我想提取一些不带星号的数字,以下是示例:Java正则表达式中的字符匹配,java,regex,Java,Regex,我想提取一些不带星号的数字,以下是示例: 1 0 0*1543 27 123*5464 11 1007* 998*7586 13 997*686 我尝试过使用这个正则表达式和其他一些正则表达式,但都不起作用: (\d+)[^\*] 我要找的是得到所有数字,除非后面跟一个星。以下是输出的外观: 1 0 27 11 13 我的计划是编写正则表达式并使用组来提取这些值。我用它来测试我的正则表达式 更新: 我不是在寻找*后面的匹配数字,这意味着我只想在行首找到数字。谢谢 更新II: (?<!
1
0
0*1543
27 123*5464
11 1007*
998*7586
13
997*686
我尝试过使用这个正则表达式和其他一些正则表达式,但都不起作用:
(\d+)[^\*]
我要找的是得到所有数字,除非后面跟一个星。以下是输出的外观:
1
0
27
11
13
我的计划是编写正则表达式并使用组来提取这些值。我用它来测试我的正则表达式
更新:
我不是在寻找*后面的匹配数字,这意味着我只想在行首找到数字。谢谢
更新II:
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
在进一步挖掘regex给出的匹配之后(来自Kameleon博士)
(?
我得到了一个额外的匹配,可以在这里看到:
我不想在222*123 505
中匹配505
。所有其他匹配都是完美匹配的
看起来这个正则表达式需要一些小的调整,但我无法调整它,即(?试试这个:(演示:)
或此(如果您只需要第一部分,如示例中所示):
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))
(?差不多就是这样,只是我不想匹配*后面的数字,这意味着我只想在行首找到数字。thanks@London当然,我想,您想要的也可以通过将字符串拆分为“*”
和“
(空格)来实现然后获得数组的第一个元素…但我绝不是java大师,所以我将把它留给你…:-)@London LOL(说实话,我讨厌java…。不客气-很高兴能帮助你!:-)
(?<!\*)(?<![0-9])([0-9]+(?!\*)(?![0-9]))