正则的位置匹配使用详解

这次给大家带来正则的位置匹配使用详解,使用正则位置匹配的注意事项有哪些,下面就是实战案例,一起来看一下。

本文实例讲述了正则表达式教程之位置匹配。分享给大家供大家参考,具体如下:

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

一、问题引入

如果想匹配一段文本中的某个单词(暂不考虑多行模式,将在后面介绍),我们可能会像下面这样:

文本:Yesterday is history, tomorrow is a mystery, but today is a gift.

正则表达式:is

结果:Yesterday 【is】 h【is】tory, tomorrow 【is】 a mystery, but today 【is】 a gift.

分析:本来只是要匹配单词is,但把其他单词中包含的is也匹配出来了。要解决这个问题,使用边界界定符,也就是在正则表达式里用一些元字符来表明我们想让匹配操作在什么位置(或边界)发生。

二、单词边界

一种常用的边界是由限定符指定的单词边界,用来匹配单词的开始和结尾。更确切地说,它是匹配这样一个位置,这个位置位于一个能够用来构成单词的字符(字母、数字、下划线,也就是与w相匹配的字符)和一个不能用来构成单词的字符(与W相匹配的字符)之间。来看前面的例子:

文本:Yesterday is history, tomorrow is a mystery, but today is a gift.

正则表达式:is

结果:Yesterday 【is】 history, tomorrow 【is】 a mystery, but today 【is】 a gift.

分析:在原始文本中,单词is的前后都有一个空格,而这与模式is匹配(空格是用来分隔单词的字符之一)。而单词history中也包含了is,因为它的前后分别有一个字符h和t,这两个字符都不能与匹配。

如果不匹配一个单词边界,则使用B。如:

文本:Please enter the nine-digit id as it appears on your color – coded pass-key.

正则表达式:B-B

结果:Please enter the 【nine-digit】 id as it appears on your color – coded 【pass-key】.

分析:B-B将匹配一个前后都不是单词边界的连字符,nine-digit和pass-key中连字符前后都没有空格,所以能够匹配,而color – coded中连字符前后都有空格,所以不能匹配。

三、字符串边界

单词边界可以用来进行与单词有关的位置匹配(单词开头、结束、整个单词等等)。而字符串边界也有着类似的用途,只不过是用来进行与字符串有关的位置匹配(字符串开头、结束、整个字符串等等)。用来定义字符串边界的元字符有两个:一个是用来定义字符串开头的^,另一个是用来定义字符串结尾的$。

比如要检查一个XML文档的合法性,合法的XML文档都以这样形式开头:

文本:


登录后复制

正则表达式:^s*

结果:

分析:^匹配一个字符串的开头位置,所以^s*将匹配一个字符串的开头位置和随后的零个或多个空白字符,因为标签前面允许有空格、制表符、换行符等空白字符。

$元字符符的用法除了位置上的差异外,与^用法完全一样。比如,检查一个html页面是否以

以上就是正则的位置匹配使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

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

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

(0)
上一篇 2025年3月8日 15:13:33
下一篇 2025年2月28日 10:20:00

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

相关推荐

  • 正则的重复匹配使用详解

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

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

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

    编程技术 2025年3月8日
    200
  • 正则怎样写才能匹配一组字符

    这次给大家带来正则怎样写才能匹配一组字符,正则匹配一组字符的注意事项有哪些,下面就是实战案例,一起来看一下。 本文实例讲述了正则表达式教程之匹配一组字符的方法。分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本…

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

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

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

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

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

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

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

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

    编程技术 2025年3月8日
    200
  • 正则表达式分组的详解(附代码)

    这次给大家带来正则表达式分组的详解(附代码),正则表达式分组的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式分组:如果想匹配3个数字,正则表达式可以用如下写法: d{3} 以上代码使用重复量词可以匹配3位数字。但是在实际应用中…

    编程技术 2025年3月8日
    200
  • 正则表达式的d元字符使用详解(附代码)

    这次给大家带来正则表达式的d元字符使用详解(附代码),使用正则表达式d元字符的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式d元字符:d元字符可以匹配数字字符,等价于”[0-9]”。 语法结构: 构造函…

    2025年3月8日
    200
  • 正则表达式的.号元字符使用详解(附代码)

    这次给大家带来正则表达式的.号元字符使用详解(附代码),使用正则表达式.号元字符的注意事项有哪些,下面就是实战案例,一起来看一下。 正则表达式.号元字符:点号(.)元字符可以匹配除了回车符()和换行符()之外的任意字符。语法结构:构造函数方…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论