Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式中的字符匹配_Java_Regex - Fatal编程技术网

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]))