千家信息网

正则表达式中子表达式怎么用

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家分享的是有关正则表达式中子表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有
千家信息网最后更新 2026年11月04日正则表达式中子表达式怎么用

这篇文章给大家分享的是有关正则表达式中子表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用java来实现,如果是java本身正则表达式的用法,会在相应的地方说明。所有java例子都在JDK1.6.0_13下测试通过。

一、问题引入

首先来看一个例子,有的短语如Windows 2000虽然是多个单词组成,但其实是一个整体,HTML页面中可以使用非换行空格( 即non-breaking space)让它在浏览器中显示在一行上,现在来匹配多个这样的空格:

文本:Your operation systemis Windows   2000.

正则表达式:nbsp;{2,}

结果:Your operation systemis Windows   2000.

分析:这里使用模式想匹配2个或2个以上的非换行空格,但是从结果可以看出,没有匹配到任何东西,因为nbsp;{2,}这个模式只能匹配到像nbsp;;;;;;;这样以nbsp开头,2个或2个以上连续分号的文本。

因为前面说过的重复匹配都是紧挨着重复匹配元字符之前的那个字符的多次重复,但是,如果我们想对一个字符串进行多次匹配,又该怎么做呢?

二、子表达式

从上面我们引出子表达式。子表达式是一个大的表达式的一部分,把一个表达式划分为多个子表达式的目的是为了把那些子表达式当作一个独立的元素来使用。子表达式必须用(和)括起来。所以,前面的例子中正则表达式应该写成(nbsp;){2,}。

来看一个匹配有效年份的正则:

文本:1988-11-13

正则表达式:(19|20)\d{2}

结果:【1988】-11-13

分析:这个例子中,为了排除没有意义的年份,把年份的前两位数字限定为19或20,|是正则表达式里的或操作符。这里必须把19|20放到一个子表达式里,即(19|20),否则只能匹配到以20开头的年份,

三、子表达式的嵌套

子表达式允许嵌套,而且允许多层嵌套,嵌套层次在理论上没有限制。

在表达式 ((A)(B(C))) 中,存在以下几个子表达式:

1 ((A)(B(C)))

2 (A)

3 (B(C))

4 (C)

共4个,第0个始终代表整个表达式。在后面的回溯引用中会介绍到通过\n(n是子表式的编号)来引用子表达式。

子表达式嵌套的例子可参看后面匹配IPV4地址的正则表达式。

感谢各位的阅读!关于"正则表达式中子表达式怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

表达式 正则 例子 年份 文本 结果 个子 空格 中子 内容 多个 字符 开头 更多 模式 篇文章 分析 不错 实用 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 广州紫鲸互联网科技有限公司 科技互联网政务服务 互联网科技公司税收优惠 互联网金融 科技金融 汇久创客互联网科技 镁科技互联网资讯平台 博兴的互联网电子科技公司 科技互联网的估值 重庆互联网医院沙龙医盟信息科技 武汉健翔互联网络科技有限公司 互联网科技产业特征 恒生互联网科技指数跳水 速维有品互联网信息科技(苏州)有限公司 互联网科技研发水平 有人说阿里系是互联网科技企业 江苏互联网智能科技产品出厂价 湖北辰鑫科技互联网 互联网科技博主张洲 小牛互联网科技有限公司地址 上海喔噻互联网科技有限公司 重庆互联网络科技 狮子座互联网科技 有木互联网科技 顶级互联网科技成果有哪些 恒生互联网科技指数跳水 呼和浩特新华互联网科技学院 广东工业互联网大赛深圳学泰科技 福仕德教育科技互联网 高科技和互联网的现代国家
0