2012-04-21 78 views
2

[\d-.]+有效,但[\d-.]*没有。我唯一改变的是最后的+**正则表达式运算符为什么不能正常工作?

<b>12345</b> 
<b>12345-6789</b> 
<i>1234.5678</i> 
<tag>1234-2342346456</tag> 

我测试了它这里http://regexr.com?30ngn

*意味着0个或多个而+指1或大于1。 *仅适用于.吗?

+0

中间是什么这些xml行? – Shep 2012-04-21 06:22:24

+0

显示你的整个正则表达式和确切的输入字符串 – shift66 2012-04-21 06:24:13

+0

不是*适用于每个正则表达式,不仅适用于每个正则表达式。 ,这是一个奇怪的问题 – Niko 2012-04-21 06:25:29

回答

3

*运营商工作正常,它只是正则表达式行事有趣,或者是由于你在正则表达式字符类中使用-字符。如果你想匹配一个角色类中的-角色,就把它放在开头;否则,正则表达式引擎可能认为你想匹配一个范围(如[A-Z])。

固定正则表达式[-\d.]*regexpal上正常工作。

+0

嗯,我明白了,这只是网站的问题。 – Jonas 2012-04-21 06:28:20

+1

似乎是该网站。甚至没有'[\ d] *'在'[\ d] +中工作。 – Jack 2012-04-21 07:08:38