正则表达式匹配多个字符串但不匹配特定字符串

     2023-02-22     196

关键词:

【中文标题】正则表达式匹配多个字符串但不匹配特定字符串【英文标题】:Regex to match several strings but not specific ones 【发布时间】:2014-10-08 14:32:01 【问题描述】:

我正在使用 Perl 来搜索和匹配每行中符合条件的字符串,并希望省略包含特定字符串的行。 我的意思是: 假设我正在匹配字符串 Mouse,但如果该行匹配 X123Y,我想省略。任何一个字符串都可以在该行的任何位置找到。

*** Mouse forum.       <--Match
*** -Mouse- forum.     <--Match
*** X123Y forum Mouse. <--Should not Match
*** XYZ forum Mouse.   <--Should not Match

我希望这能解决它,因为我使用的是负前瞻,但似乎没有奏效。

(?i)(\WMouse\W|(?!(X123Y|XYZ)).*$)

我想我在做一些根本错误的事情,但现在看不到。

有什么帮助吗?

【问题讨论】:

【参考方案1】:

这个正则表达式应该适合你:

^(?=.*?Mouse)(?:(?!(?:X123|XYZ)).)*$

RegEx Demo

【讨论】:

只需查看演示链接中的正则表达式描述,了解有关此正则表达式的所有详细信息。之后,请随时提出任何问题,我会在这里回答。【参考方案2】:

您可以使用丢弃技术来保留您想要的内容并丢弃您不想要的模式。

例如,使用这个正则表达式:

.*X123Y.*|.*XYZ.*|(.*Mouse.*)

您将获取最正确模式的内容并丢弃其他模式..

Working demo

这个想法是使用:

discard patt 1 | discard patt 2 | discard patt n | (grab this pattern)

【讨论】:

特定中文字符串正则匹配

...,如“丽乡”解决过程:之前知道匹配中文字符串,正则表达式中使用的是unicode编码的范围,如/^[x{4e00}-x{9fa5}]+$/u想着特定字符是否可以不用转换成unicode编码,于是写出正则 ‘/^[美]{0,1}[丽]{0,1}[乡]{0,1}[村}]{ 查看详情

R中的正则表达式:匹配所有内容,但不匹配“某些字符串”[重复]

】R中的正则表达式:匹配所有内容,但不匹配“某些字符串”[重复]【英文标题】:RegexinR:matcheverythingbutnot"somestring"[duplicate]【发布时间】:2013-07-0111:06:44【问题描述】:另一个问题的答案解释howtomatchastringnotcontainingaword... 查看详情

Redshift 正则表达式匹配直到模式匹配但不包含模式

】Redshift正则表达式匹配直到模式匹配但不包含模式【英文标题】:Redshiftregularexpressionmatchupuntilpatternmatchbutnotincludepattern【发布时间】:2017-07-1223:09:41【问题描述】:由于Redshift不支持前瞻断言,我需要一种方法来查找子字符串... 查看详情

正则表达式匹配超过 2 个空格但不匹配新行

】正则表达式匹配超过2个空格但不匹配新行【英文标题】:Regextomatchmorethan2whitespacesbutnotnewline【发布时间】:2011-08-0209:07:46【问题描述】:我想替换字符串中所有超过2个空格但不是新行,我有这个正则表达式:\\s2,但它也匹配... 查看详情

用正则表达式怎样匹配不包含特定字符串的字符串

...16”、“三星I5800”、“诺基亚C5”。。。。。。求一正则表达式,能匹配所有不含“诺基亚”的字符串正则表达式匹配公式为:^((?!XXX).)*$,XXX为字符串。另外列举一些正则表达式的语法:[abc]a或b或c.任意单个字符a?零个或一个a[^... 查看详情

正则表达式匹配不是特定子字符串的内容

】正则表达式匹配不是特定子字符串的内容【英文标题】:Regextomatchagainstsomethingthatisnotaspecificsubstring【发布时间】:2010-09-0718:20:57【问题描述】:我正在寻找一个正则表达式,它将匹配以一个子字符串开头且不以某个子字符串... 查看详情

当不跟随特定字符(?)时,如何使用正则表达式匹配字符(')?

】当不跟随特定字符(?)时,如何使用正则表达式匹配字符(\\\')?【英文标题】:HowcanIuseregextomatchacharacter(\')whennotfollowingaspecificcharacter(?)?当不跟随特定字符(?)时,如何使用正则表达式匹配字符(\')?【发布时间】:2... 查看详情

特定字符串的正则表达式反向匹配?

】特定字符串的正则表达式反向匹配?【英文标题】:Regexinversematchingonspecificstring?【发布时间】:2011-09-0923:20:15【问题描述】:我想匹配以下com.my.company.moduleA.MyClassNamecom.my.company.moduleB.MyClassNamecom.my.company.anythingElse.MyClassName但不... 查看详情

正则表达

1、正则表达式-简介正则表达式的使用,可以通过简单的办法来实现强大的功能。下面先给出一个简单的示例:^ 为匹配输入字符串的开始位置。[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 匹配一个或者多个。abc$... 查看详情

正则表达式:匹配除特定模式之外的所有内容

】正则表达式:匹配除特定模式之外的所有内容【英文标题】:Regex:matcheverythingbutspecificpattern【发布时间】:2010-12-1320:14:30【问题描述】:我需要一个能够匹配所有内容的正则表达式但是一个以特定模式开头的字符串(特别是ind... 查看详情

正则表达式匹配多个字符

*    匹配前一个字符出现0次或者无限次+    匹配前一个字符出现1次或者无限次?   匹配前一个字符出现0次或者1次m   匹配前一个字符出现m次m,n  匹配前一个字符出现从m次到n次 查看详情

Laravel - 正则表达式路由匹配所有内容,但不完全匹配一个或多个单词

】Laravel-正则表达式路由匹配所有内容,但不完全匹配一个或多个单词【英文标题】:Laravel-regexroutematcheverythingbutnotexactlyoneormoreword【发布时间】:2020-04-2007:50:46【问题描述】:我做了一个类似的路线Route::get(\'/url1\',function($url1)re... 查看详情

正则表达式匹配特定长度的字符串,中间有空格(任何地方)

】正则表达式匹配特定长度的字符串,中间有空格(任何地方)【英文标题】:Regextomatchspecific-lengthstringwithwhitespaceinthemiddle(anywhere)【发布时间】:2016-07-2920:47:30【问题描述】:我需要一个匹配短语(具有特定长度和结构)的正... 查看详情

是否有正则表达式来匹配包含 A 但不包含 B 的字符串 [重复]

】是否有正则表达式来匹配包含A但不包含B的字符串[重复]【英文标题】:IstherearegextomatchastringthatcontainsAbutdoesnotcontainB[duplicate]【发布时间】:2012-01-0415:51:49【问题描述】:我的问题是我想用纯正则表达式检查浏览器字符串。Mozil... 查看详情

mysqlregexp:正则表达式查询(代码片段)

阅读目录阐述REGEXP操作符中常用的匹配列表查询以特定字符或字符串开头的记录【实例1】【实例2】查询以特定字符或字符串结尾的记录【实例3】【实例4】用符号“.”代替字符串中的任意一个字符【实例5】使用“*”和“+”... 查看详情

正则表达式匹配特定字符串之后的文本,直到另一个特定字符串

】正则表达式匹配特定字符串之后的文本,直到另一个特定字符串【英文标题】:Regexmatchingatextafteraspecificstringuntilanotherspecificstring【发布时间】:2018-08-1118:24:52【问题描述】:如果我有以下示例:X-FileName:pallen(Non-Privileged).pstHere... 查看详情

正则表达式匹配多个字符串之一

】正则表达式匹配多个字符串之一【英文标题】:Regextomatchoneofmultiplestrings【发布时间】:2021-12-2712:24:29【问题描述】:在正则表达式方面需要帮助以匹配以下任一情况:data.testID=abd.123,data.newID=abc.123.123,data.testcaseID=abc.1_2,data.test... 查看详情

正则表达式必知必会3/10

第一章正则表达式入门正则表达式(Regularexpression,简称regex)查找特定的信息(搜索),查找并编辑特定的信息(替换)。正则表达式是一些用来匹配和处理文本的字符串,是由正则表达式语言创建的。与其他程序设计语言一... 查看详情