加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:21:14 所属栏目:百科 来源:网络整理
导读:如nbasp;{2,} 本意是想把nbasp;出现两次或多次的找出来,但实际上确是 nbasp;;;; 为什么会这样呢?因为{2,}只作用于紧挨着他的前一个字符; 这就引出了子表达式。 把一个表达式划分为一系列子表达式的目的是为了把那些子表达式当作一个独立的整体元素来使用。
如&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 表示:1d{2}
200-249 表示:2[0-4]d
250-255 表示:25[0-5]

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读