正则表达式之<六>使用子表达式

如&nbasp;{2,} 本意是想把&nbasp;出现两次或多次的找出来,但实际上确是
&nbasp;;;;
为什么会这样呢?因为{2,}只作用于紧挨着他的前一个字符;
这就引出了子表达式。

把一个表达式划分为一系列子表达式的目的是为了把那些子表达式当作一个独立的整体元素来使用。 子表达式必须用()括起来。

上面的改为(&nbasp;){2}就可以了。

1.正则逼表达式是只是一种工具,还是一种不懂数学运算的工具。你的数学再好这里也帮不上什么忙。
那么如何去表示一个IP?
0.0.0.0-255.255.255.255

假设写成:
([\d{1,3}\.]){3}\d{1,3}

这样的话0-999都能匹配了。

怎么办?
0-255可以拆分成:
0-99      表示:\d{1,2}
100-199   表示:1\d{2}
200-249   表示:2[0-4]\d
250-255   表示:25[0-5]

0-255就可以表示成:
(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])

最终结果应该为:
0.0.0.0-255.255.255.255
表示为:
( (\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])\.){3}( (\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))

猜你喜欢

转载自fengshayage.iteye.com/blog/1885413