示例 |
正则表达式示例 |
数字范围 |
浮点数 |
电子邮件地址 |
IP 地址 |
有效日期 |
数字日期转文本 |
信用卡号 |
匹配完整行 |
删除重复行 |
编程 |
两个相邻单词 |
陷阱 |
灾难性回溯 |
重复次数过多 |
拒绝服务 |
使所有内容可选 |
重复捕获组 |
混合 Unicode 和 8 位 |
本网站上的更多内容 |
简介 |
正则表达式快速入门 |
正则表达式教程 |
替换字符串教程 |
应用程序和语言 |
正则表达式示例 |
正则表达式参考 |
替换字符串参考 |
书评 |
可打印 PDF |
关于本网站 |
RSS 源和博客 |
一些使用布尔运算符的搜索工具还具有一个称为“near”的特殊运算符。搜索“term1 near term2”会查找彼此相距一定“距离”的 term1 和 term2 的所有出现。距离是以单词为单位的数字。实际数字取决于搜索工具,并且通常是可配置的。
您可以使用正确的正则表达式轻松执行相同的任务。
使用正则表达式,你可以描述几乎任何文本模式,包括匹配两个相邻单词的模式。此模式相对简单,由三部分组成:第一个单词、一定数量的未指定单词和第二个单词。未指定单词可以使用 速记字符类 \w+ 匹配。单词之间的空格和其他字符可以使用 \W+ 匹配(这次使用大写 W)。
完整的正则表达式变为 \bword1\W+(?:\w+\W+){1,6}?word2\b。量词 {1,6}? 使正则表达式要求“word1”和“word2”之间至少有一个单词,最多允许六个单词。
如果单词也可能以相反的顺序出现,我们还需要指定相反的模式
\b(?:word1\W+(?:\w+\W+){1,6}?word2|word2\W+(?:\w+\W+){1,6}?word1)\b
如果你想从单词列表中查找任意两个单词对,可以使用
\b(单词1|单词2|单词3)(?:\W+\w+){1,6}?\W+(单词1|单词2|单词3)\b
最终的正则表达式还会找到一个单词附近的单词。例如,它将匹配单词2 附近的单词2。
| 快速入门 | 教程 | 工具和语言 | 示例 | 参考 | 书籍评论 |
| 正则表达式示例 | 数字范围 | 浮点数 | 电子邮件地址 | IP 地址 | 有效日期 | 数字日期转文本 | 信用卡号 | 匹配完整行 | 删除重复行 | 编程 | 两个相邻的单词 |
| 灾难性回溯 | 重复次数过多 | 拒绝服务 | 使所有内容都变为可选 | 重复捕获组 | 混合 Unicode 和 8 位 |
页面网址:https://regexper.cn/near.html
页面上次更新时间:2021 年 8 月 20 日
网站上次更新时间:2024 年 3 月 15 日
版权所有 © 2003-2024 Jan Goyvaerts。保留所有权利。