匹配不具有相同单词的关键字的正则表达式出现在另一个关键字之前

用户名

我需要找到单词“ test”何时出现,然后是“ follow”,中间没有其他“ test”。

例子:

test
word
word
word
test
test
word
word
follow
word
word
test

我只想要这个:

test
word
word
word
test
**test**
**word**
**word**
**follow**
word
word
test

我对正则表达式还不够熟悉,无法做到这一点。任何建议都很好。

编辑虽然单词test将在其中多次出现,但是单词follow将仅在字符串中出现一次。

拉维(Ravi K Thapliyal)

您将需要正则表达式在这里使用前瞻

test(?:\w|\s(?!test))+?follow

(?:)是一个非捕获组。\w匹配任何单词字符[a-zA-Z0-9_]\s匹配任何空格(包括换行符)。\s(?!test)仅匹配不跟在后面的换行符test(在正则表达式中称为负前瞻)。()+?只是使比赛变得非贪婪。

带有匹配项的测试输入:

test
word
**test**
**word**
**follow**
word
test
**test**
**word**
**word**
**follow**
word
word
**test**
**word**
**follow**


以下正则表达式也消除了任何子字符串匹配项(例如测试中的测试,抗议等)。

(?<!\w)(test)\s(?!\1\s)(?:\w|\s(?!\1\s))*?(?<!\w)follow(?!\w)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式以捕获出现在某些关键字之后的日期

使用一个或多个单词作为搜索关键字匹配一行的正则表达式

正则表达式:获取同一表达式中多个匹配项的跨度 IF 前面有一个关键字

在python中使用正则表达式在字符串列表中的匹配关键字之后找到下一个单词

正则表达式仅匹配整个单词的多个关键字搜索

正则表达式搜索并grep字符串中第一个关键字和第二个关键字的第二次出现之间的所有内容 - Python

正则表达式按顺序匹配 2 个分隔的关键字

用于过滤具有多个关键字的特定 URL 的正则表达式

PHP正则表达式匹配多个关键字,其中last关键字是可选的

正则表达式获取匹配前后的所有文本,并在找到第二个关键字之前停止

如何正则表达式仅提取第一个逗号或特定关键字之后的数字?

基于关键字过滤的正则表达式

相同字节码方法具有或不具有在方法签名synchronized关键字

如何在匹配后和正则表达式中的关键字之前隐藏文本?

如何使用正则表达式在python中的关键字列表后提取单词?

正则表达式切离关键字最近的单词

使用正则表达式在Notepad ++中搜索包含特定关键字的整个单词

正则表达式动态捕获特定关键字之间的单词

匹配部分正确关键字的正则表达式

Golang正则表达式以匹配关键字对之间的多种模式

匹配正则表达式中不包括关键字的短语

Apify:PseudoUrl正则表达式以匹配包含给定关键字的URL

正则表达式匹配阿拉伯关键字

正则表达式用于多个关键字匹配

正则表达式以匹配静态关键字和变量

正则表达式匹配特定上下文中的关键字

正则表达式以匹配不在<a>标签或alt属性内的关键字

如果后面跟着空格和关键字,则正则表达式跳过匹配

正则表达式匹配特定关键字之间的文本