正则里的子表达式使用详解

这次给大家带来正则里的子表达式使用详解,正则里子表达式使用的注意事项有哪些,下面就是实战案例,一起来看一下。

注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用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是子表式的编号)来引用子表达式。

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

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

用php与js实现正则匹配数字和字母组合的密码

在JQ中正则验证不能含有中文的方法

以上就是正则里的子表达式使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2777778.html

(0)
上一篇 2025年3月8日 15:13:49
下一篇 2025年3月8日 15:13:56

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 正则的位置匹配使用详解

    这次给大家带来正则的位置匹配使用详解,使用正则位置匹配的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了正则表达式教程之位置匹配。分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间…

    编程技术 2025年3月8日
    200
  • 正则的重复匹配使用详解

    这次给大家带来正则的重复匹配使用详解,正则重复匹配使用的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了正则表达式教程之重复匹配。分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间…

    编程技术 2025年3月8日
    200
  • 正则的元字符使用详解

    这次给大家带来正则的元字符使用详解,正则元字符使用的注意事项有哪些,下面就是实战案例,一起来看一下。 注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法,会在相应的…

    编程技术 2025年3月8日
    200
  • 正则的操作符使用详解

    这次给大家带来正则的操作符使用详解,使用正则操作符的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了正则表达式中的操作符及说明。分享给大家供大家参考,具体如下: 一、普通字符 包括所有未显式指定为元字符的打印和非打印字符组成…

    编程技术 2025年3月8日
    200
  • 在linux里使用正则表达式详解

    这次给大家带来在linux里使用正则表达式详解,在linux里使用正则表达式的正则表达式有哪些,下面就是实战案例,一起来看一下。 前言 正则表达式应用广泛,在绝大多数的正则表达式都可以完美应用,在Linux中,也有着极大的用处。 使用正则表…

    编程技术 2025年3月8日
    200
  • 在jQuery里使用正则表达式的图文详解

    这次给大家带来在jQuery里使用正则表达式的图文详解,在jQuery里使用正则表达式的注意事项有哪些,下面就是实战案例,一起来看一下。 基础正则 1、正则表达式的创建 a) var checkNum = /^[A-Za-z0-9]+$/;…

    2025年3月8日
    200
  • 正则的惰性匹配模式(?)使用详解

    这次给大家带来正则的惰性匹配模式(?)使用详解,正则惰性匹配模式(?)使用的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式惰性匹配模式:在贪婪匹配模式一章节已经说过人性是贪婪的,希望获得更多的金钱、地位甚至美女,但是也有很多清…

    编程技术 2025年3月8日
    200
  • Linux中使用正则表达式的详细介绍

    这次给大家带来Linux中使用正则表达式的详细介绍,Linux中使用正则表达式的正则表达式有哪些,下面就是实战案例,一起来看一下。 字符匹配:         .  :匹配任意单个字符         [] :匹配指定范围内的任意单个字符;…

    编程技术 2025年3月8日
    200
  • 正则匹配IP的图文详解

    这次给大家带来正则匹配IP的图文详解,正则匹配IP的注意事项有哪些,下面就是实战案例,一起来看一下。 这里给大家详细讲解一下一个匹配IP地址的正则表达式,   有关正则方面的知识,会在详细的讲解中提到。   在讲解之前,我先给大家介绍一下,…

    编程技术 2025年3月8日
    200
  • 正则表达式字符类的详细介绍

    这次给大家带来正则表达式字符类的详细介绍,使用正则表达式字符类的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式字符类加深理解:一.基本概念:字符类相对来说是比较简单的,但是也有可能由于理解不够深入或者大意造成一些误区,下面再来…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论