`

10.正则表达式:定位点

阅读更多

本节前面的主题中的示例只涉及章节标题查找。字符串 Chapter 后面跟空格和数字的任何匹配项可能是实际章节标题,或者也可能是指向另一章的交叉引用。由于真正的章节标题总是出现在行的开始,所以设计一种方法只查找标题而不查找交叉引用可能很有用。

 

定位点提供该能力。定位点使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。下表包含正则表达式定位点以及它们的含义的列表:

 

字符 说明
^ 匹配输入字符串开始 的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。
$ 匹配输入字符串结尾 的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。
\b 匹配一个字边界 ,即字与空格间的位置
\B 非字边界匹配

 

不能将限定符与定位点一起使用 。由于在紧靠换行或者字边界的前面或后面不能有一个以上位置,因此不允许诸如 ^* 之类的表达式。

 

若要匹配一行文本开始处的文本,请在正则表达式的开始使用 ^ 字符。不要将 ^ 的这种用法与中括号表达式内的用法混淆。

 

若要匹配一行文本的结束处的文本,请在正则表达式的结束处使用 $ 字符。

 

若要在搜索章节标题时使用定位点,下面的正则表达式匹配一个章节标题,该标题只包含两个尾随数字,并且出现在行首:

/^Chapter [1-9][0-9]{0,1}/

 

真正的章节标题不仅出现行的开始处,而且它还是该行中仅有的文本。它即出现在行首又出现在同一行的结尾。下面的表达式能确保指定的匹配只匹配章节而不匹配交叉引用。通过创建只匹配一行文本的开始和结尾的正则表达式,就可做到这一点。

/^Chapter [1-9][0-9]{0,1}$/

 

匹配字边界稍有不同,但向正则表达式添加了很重要的能力。字边界是单词和空格之间的位置。非字边界是任何其他位置。下面的表达式匹配单词 Chapter 的开头三个字符,因为这三个字符出现字边界后面:

/\bCha/

 

\b 字符的位置是非常重要的。如果它位于要匹配的字符串的开始,它在单词的开始处查找匹配项。如果它位于字符串的结尾,它在单词的结尾处查找匹配项。例如,下面的表达式匹配单词 Chapter 中的字符串 ter ,因为它出现在字边界的前面:

/ter\b/

 

下面的表达式匹配 Chapter 中的字符串 apt ,但不匹配 aptitude 中的字符串 apt

/\Bapt/

 

字符串 apt 出现在单词 Chapter 中的非字边界处,但出现在单词 aptitude 中的字边界处。对于 \B 非字边界运算符,位置并不重要,因为匹配不关心究竟是单词的开头还是结尾。

分享到:
评论

相关推荐

    史上最好的正则表达式教程.pdf

    根据提供的文件内容,以下为详细的正则表达式知识点总结: 正则表达式是一种强大且复杂的文本处理工具,它能够匹配符合特定模式的字符串。正则表达式能够用简单的代码描述复杂的文本规则,能够实现对字符串的查找、...

    正则表达式文本编辑器

    1. 查找与替换:正则表达式文本编辑器允许用户输入复杂的正则表达式来查找特定模式的文本,并用另一个正则表达式或固定文本替换它,这对于大规模文本处理非常有用。 2. 验证输入:在网页表单或应用程序中,可以使用...

    什么是正则表达式:探索数据世界的搜索工具.docx

    ### 正则表达式知识点详解 #### 一、正则表达式的定义与作用 正则表达式(Regular Expression),简称“regex”或“regexp”,是一种用于描述字符串模式的强大工具。它利用一系列预定义的字符、操作符及语法,实现...

    正则表达式---------资料整理,适合新手学习使用,对正则表达式的学习很有帮助

    正则表达式知识点总结 正则表达式是强大的字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。下面是正则表达式的基本概念和运用方法: 1. 正则...

    javascript正则表达式表单验证大全

    以下是从标题、描述、标签以及部分内容中提取的关键知识点,详细解释了如何使用JavaScript正则表达式进行各种常见场景下的表单验证。 #### 用户名验证 正则表达式:`^[a-zA-Z][\w]{5,17}$` 该表达式确保用户名由...

    正则表达式30分钟入门教程。轻松简单易学

    4. 定位点:`^`匹配输入字符串的开始位置,`$`匹配结束位置,`\b`匹配单词边界。 三、正则表达式的匹配模式 1. 多行模式:在模式中启用`m`标志,`^`和`$`将分别匹配每一行的开始和结束。 2. 不区分大小写:启用`i...

    面试笔试常考之正则表达式和模式匹配

    4. 定位点:`\b`表示单词边界,`\B`表示非单词边界。 5. 转义字符:`\`用来转义元字符,如`\.`表示匹配实际的点字符。 三、正则表达式在IT面试中的应用 1. 数据验证:如邮箱、电话号码、身份证号等格式验证。 2....

    常用的正则表达式.txt

    #### 常用正则表达式知识点详解 1. **中文字符匹配**: - 表达式:`[\u4e00-\u9fa5]` - 描述:该正则表达式用于匹配中文字符。其中`\u4e00`至`\u9fa5`是Unicode编码范围,覆盖了大多数常用汉字。 2. **去除重复...

    正则表达式测试工具 正则测试工具

    4. 定位点:`\b` 匹配单词边界,`\B` 匹配非单词边界。 5. 转义字符:`\` 用于对特殊字符进行转义,如 `\.` 用来匹配实际的点号。 6. 模式修饰符:如 `i` 使匹配变为大小写不敏感,`g` 使匹配在整个字符串中全局进行...

    正则表达式只可以输入只允许输入中文、数字、字母、下划线

    ### 正则表达式知识点详解 #### 一、正则表达式基础介绍 正则表达式(Regular Expression)是一种强大的文本处理工具,在编程语言中被广泛应用于字符串的搜索与替换等操作。它能够帮助开发者快速定位、提取或验证...

    正则表达式系统教程

    4. 定位点:`\b` 匹配单词边界,`\B` 匹配非单词边界。 三、正则表达式在不同语言中的实现 1. JavaScript:JavaScript 的 `String.prototype.match()`、`String.prototype.replace()` 等方法支持正则表达式。 2. ...

    正则表达式-常用正则表达式大全

    ### 正则表达式-常用正则表达式大全 #### 一、正则表达式的概念与作用 正则表达式(Regular Expression),通常被简称为regex或regexp,是一种用于匹配字符串的强大工具。它广泛应用于文本搜索和替换操作,特别是...

    易语言正则表达式调试工具

    在使用易语言正则表达式调试工具时,开发者需要注意以下几点: 1. **理解正则语法**:熟悉正则表达式的各种元字符和语法,如点号(.)代表任意字符,星号(*)表示前一个字符可重复零次或多次等。 2. **调试策略**...

    C#字符串和正则表达式参考手册 pdf

    4. 错误处理:通过正则表达式匹配错误信息,快速定位问题。 总的来说,《C#字符串和正则表达式参考手册》全面覆盖了C#中字符串操作与正则表达式的各种用法,对于开发人员来说,是一份非常实用的参考资料。通过学习...

    正则表达式 正则表达式资料 正则表达式教程

    根据给定文件的信息,我们可以提炼出关于正则表达式的几个重要知识点,并对这些知识点进行详细的阐述。 ### 一、正则表达式基础知识 #### 1.1 什么是正则表达式? 正则表达式(Regular Expression)是一种强大的...

    正则表达式入门经典 带书签

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。本资源“正则表达式入门经典”是一本旨在帮助初学者掌握这一强大工具的书籍,通过学习...

    C#正则表达式使用心得

    例如,`\w{1,}@\w{1,}\.\w{1,3}` 是一个用于验证电子邮件地址的正则表达式,它要求字符串由一个或多个字母、数字或下划线(`\w`)组成,后跟一个@,再后面是一个或多个`\w`,接着是一个点(`.`)和一到三个`\w`。...

    正则表达式素材5

    通过学习上述知识点,结合《正则表达式入门经典》和“正则表达式解释器实现原理”,你可以构建起坚实的正则表达式基础,从而在日常工作中更高效地处理文本数据,解决各种复杂的字符串匹配问题。同时,不断实践和调试...

Global site tag (gtag.js) - Google Analytics