当前位置: 首页 > 知识库问答 >
问题:

正则表达式:匹配除指定字以外的字

长孙景焕
2023-03-14

如何使用regex匹配任何单词而不显示指定的单词

我想去掉“你”这个词

我有一些词例如:

you eat
you handsome
you die
you will
you lie
and others

所以,这个项目的结果是:

eat
handsome
die
will
lie

共有3个答案

姜运珧
2023-03-14

如果你想使用正则表达式,那么如果你用matcher group$2替换它,这就行了:

/(you (\w+))|(\w+ \w+)/g

http://regexr.com/3a8uk

樊胜
2023-03-14

使用单词边界和负面前瞻:

\b(?!you\b)\w+\b
陆飞龙
2023-03-14

如果使用PCRE(perl compatible regex),则可以利用以下跳过/失败标志:

you(*SKIP)(*FAIL)|\b(\w+)\b

工作演示

然后,您是否可以访问捕获组:

MATCH 1
1.  [4-7]   `eat`
MATCH 2
1.  [12-20] `handsome`
MATCH 3
1.  [25-28] `die`
MATCH 4
1.  [33-37] `will`
MATCH 5
1.  [42-45] `lie`
MATCH 6
1.  [46-49] `and`
MATCH 7
1.  [50-56] `others`

引用一段regular-expressions.info

PCRE是与Perl兼容的正则表达式的缩写。它是Phillip Hazel用C编写的开源库的名称。该库与大量C编译器和操作系统兼容。许多人从PCRE中派生出库,使其与其他编程语言兼容。PHP、Delphi和R以及Xojo(REALbasic)中包含的正则表达式功能都基于PCRE。该库还作为共享库包含在许多Linux发行版中。所以图书馆和图书馆。h头文件。

另一方面,如果你不使用pcre正则表达式,那么你可以使用一种优秀的正则表达式技巧(我认为是最好的),通常称为丢弃技巧。它包括使用OR链匹配所有您不想要的模式,并在链的末尾使用您感兴趣的模式并捕获它:

discard patt1 | discard patt2 | discard pattN |(grab this!)

对于您的情况,您可以使用:

you|\b(\w+)\b
 ^       ^--- Capture this    
 +-- Discard 'you'
 类似资料:
  • 我用这个过滤聊天中的消息,我用C#来做这件事。这里有一个工具,如果你想进一步挖掘:http://regexr.com/3faji C#扩展方法:

  • 问题内容: 我想匹配一个15位数字(作为较大的正则表达式字符串的一部分)。现在,我有 但我觉得必须有一种更清洁的方法来做到这一点。 问题答案: 如果您正则表达式语言是Perl兼容的:。 在不知道要使用此代码段的外部上下文的情况下,很难说出如何处理边缘(因此您不会意外地抓住多余的数字)。最终的上下文无关解决方案是这样的: 您可以将其放在任何正则表达式的中间,它将匹配(并且仅匹配)一个精确的15位数字

  • 问题内容: 什么正则表达式将匹配Java中的任何ASCII字符? 我已经尝试过: 但是发现它与我想要的很多东西都不匹配(例如空格,括号等)。我希望避免以如下格式显式列出所有127个ASCII字符: 问题答案: 我没用过但是我用过

  • 问题内容: 我正在尝试创建一个匹配字符串的正则表达式,如果它连续有3个或多个重复字符(例如aaaaaa,testtttttt,otttttter)。 我尝试了以下方法: 连续 匹配 任意 3个字符,但不 连续的 字符…我在哪里出错? 问题答案: 您要的内容无法使用 真正的 正则表达式完成,您需要的是(不规则的)反向引用。尽管许多正则表达式引擎实现了它们,但Go使用的RE2却没有。RE2是一种快速的

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我正在编写一个php类来从csv文件中提取数据。所以正则表达式需要帮助。 数据样本 正则表达式 这不应该匹配第1、2和7行,因为它在数据和字段后只有空格和制表符(空白) 这是我的regex测试程序链接https://regex101.com/r/xpG25l/1/