正则表达式的位置匹配
位置匹配用来解决在什么地方进行字符串匹配操作的问题。在实际应用中需要对某段文本的特
定位置进行匹配,这时就需要用的正则表达式的"位置匹配"。
为了明确说明先看一实例,文本: You shouldn't let that cat scattered kids' food all over the room.
将文本中的cat 换成 dog, 需要先找到cat. 一般写法的正则表达式是cat, 但是如果是这样的话,结果就变得没有意义如下:
You shouldn't let that dog sdogtered kids' food all over the room.
能够正确解决该问题的办法只有一个: 使用边界限定符,也就是在正则表达式中利用一些特
殊的元字符来表明我们想让匹配操作在什么位置(边界)发生。
1. 单词边界(最常用的边界)
即由限定符\b指定的单词边界。 \b 用来匹配一个单词的开始或者结尾。
通过正则表达式在文本中完整的匹配一个单词的做法是在该单词的前后\b.例如想匹配单词cat ,正则写法为: \bcat\b
\b 匹配的是这样的一个位置, 这个位置位于一个能够用来构成单词的字符即\w和一个不能用来构成单词的字符即\W之间。
\b 匹配且只匹配一个位置,不匹配任何字符。
cap 会匹配cap capable cape white-cap等等;
\bcap会匹配cap capable cape
cap\b会匹配white-cap
如果想表明不匹配一个单词边界,使用\B。
2. 字符串边界
单词边界可以用来进行与单词有关的位置匹配(单词的开头、单词的结束、整个单词,等等); 字符串边界有着类似的用途,只不过是用来进行于字符串有关的位置匹配而已(字符串开头/结尾)
(1) 一个是用雷定义字符串开头的元字符^
注: \在前面提到个可以用来作为对字符集"求非",如[^a-z] 或者^\d
但是如果是在一个字符集和的外面并位于一个模式的开头,^讲匹配字符串的开头。
(2) 一个是用来定义字符串结尾的元字符$
3.分行匹配模式
有许多正则表达式都支持使用一些特殊的元字符去改变另外一些元字符行为的做法,用来启用分行匹配模式的(?m)记号就是一个能改变其它元字符行为的元字符序列。
在分行匹配模式下,^不仅匹配正常的字符串开头,还将匹配行分隔符(换行符)后面的开始位置(该位置是不可见的)。
$不仅匹配正常的字符串结尾,还将匹配行分隔符(换行符)后面的结束位置。
在使用时,(?m)必须出现在整个模式的最前面。
例如: (?m)^\s*//.*$ 用来查找JS中所有的单行注释。 注意:此时换行符将被视为一个字符串分隔符。
小结:
正则表达式不仅可以用来匹配任意长度的文本块,还可以用来匹配出现在字符串中特定位
置的文本。
\b 用来指定一个单词的边界;
^ $用来指定字符串边界;如果和(?m)配合使用,^$还将匹配在一个换行符出开头或结束的
字符串,此时,换行符讲被视为一个字符串分隔符。
分享到:
相关推荐
在易语言中,正则表达式类是一个非常重要的工具,用于处理字符串的模式匹配和查找。在处理中文文本时,这个功能尤为关键,因为中文字符的编码和处理方式与英文有所不同。 正则表达式是用于匹配字符串模式的一种强大...
本文将深入探讨易语言中的正则表达式匹配中文的原理、方法以及应用。 正则表达式(Regular Expression)是一种模式匹配的语言,用于描述一种字符串的集合。在易语言中,我们可以通过内置的字符串函数来实现正则...
而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...
例如,你可以创建一个正则表达式对象,然后使用它来测试字符串是否符合特定模式,或者从字符串中提取匹配的子串。 在实际应用中,使用正则表达式可能涉及到以下步骤: 1. 创建正则表达式:定义你要匹配的模式,例如...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
- 字符转义:在正则表达式中,特殊字符需要通过反斜杠`\`进行转义,如`\.`表示匹配实际的点号,而不是任何字符。 - 常规字符到元字符的转换:例如,将`*`转换为`\*`,避免其被解释为量词。 - 正则表达式模式构建...
标题中的“pb 使用正则表达式源码pbregexp”指的是在PowerBuilder(简称pb)环境中,利用名为“pbregexp”的正则表达式组件来实现源代码级别的正则表达式操作。PowerBuilder是一款流行的可视化的、面向对象的软件...
- 程序会显示匹配结果,包括匹配的子串、开始位置和结束位置等信息,帮助开发者调试和优化正则表达式。 5. 使用技巧 - **预编译模式**:使用`RegexOptions.Compiled`选项可以提高多次使用同一正则表达式的性能。 ...
kettle 根据系统时间加正则表达式动态匹配获取多个文本文件
1. **模糊查询**:通过正则表达式匹配相似的文本,如查询包含特定单词或短语的记录。 ```sql SELECT * FROM articles WHERE content REGEXP '.*example.*'; ``` 2. **格式验证**:确保输入的数据符合预期的格式,...
Java中提供了对正则表达式的支持,使得开发者可以使用正则表达式来匹配和提取字符串中的内容。 二、XML节点内容提取方法 在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public ...
在Lucene中,可以通过`regexQuery`来利用正则表达式进行复杂条件的匹配,从而实现更精确的搜索需求。 #### regexQuery详解 `regexQuery`是Lucene提供的一个用于执行正则表达式查询的方法。它接受一个`Term`对象作为...
同时,正则表达式还提供了其他方式来匹配任意字符,例如使用字符集合([xxx])来匹配某些字符中的一个字符。 元字符和转义 在正则表达式中,元字符表示在正则表达式中不代表其字面含义,而是具有特别意义的字符。...
正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索。在C#编程语言中,正则表达式被广泛应用于数据验证、文本提取、格式转换等多个场景。本项目提供了一个C#编写的正则表达式测试工具,包含完整...
1. **String.prototype.match()**:返回字符串中与正则表达式匹配的所有结果。 2. **String.prototype.search()**:返回匹配项的索引位置,如果没有找到则返回-1。 3. **String.prototype.replace()**:根据提供的...
在标准C++库中,虽然没有内置的正则表达式支持,但通过包含如 Boost 或 TR1(Technical Report 1)扩展,或者在较新的C++11及更高版本中使用库,开发者可以实现正则表达式功能。然而,对于MFC开发者来说,使用MFC内...
- 集成Deelx版正则表达式支持库到项目中,通常需要引用相关的头文件,并调用提供的API进行匹配、替换等操作。 - 对于静态库,开发者需要将库文件链接到项目中,确保在运行时能够找到库函数。 总之,正则表达式...
在Qt框架中,正则表达式(Regular Expression)是一种强大的文本处理工具,它允许程序员以结构化的方式匹配、查找、替换或验证字符串。本项目针对Qt的lineEdit组件,通过正则表达式实现了输入限制功能,使得lineEdit...
3. **回溯算法**:PCRE库使用了高效的回溯算法来执行正则表达式匹配。虽然这可能会导致性能问题,但通过优化的匹配引擎和使用预编译模式,可以显著提高效率。 4. **匹配选项**:提供了许多可配置的匹配选项,例如不...
局部变量 匹配结果, 结构体(正则表达式匹配) .局部变量 目标文本, 文本型 = "这里是包含网址的文本,比如 http://example.com 和 www.example.org" .局部变量 网址, 文本型 .程序段 .创建对象 正则表达式对象, ...