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

     2023-02-26     106

关键词:

【中文标题】特定字符串的正则表达式反向匹配?【英文标题】:Regex inverse matching on specific string? 【发布时间】:2011-09-09 23:20:15 【问题描述】:

我想匹配以下

com.my.company.moduleA.MyClassName com.my.company.moduleB.MyClassName com.my.company.anythingElse.MyClassName

不是以下

com.my.company.核心.MyClassName

我目前的简单正则表达式模式是:

Pattern PATTERN_MODULE_NAME = Pattern.compile("com\\.my\\.company\\.(.*?)\\..*")

Matcher matcher = PATTERN_MODULE_NAME.matcher(className);
if (matcher.matches()) 
    // will return the string inside the parentheses (.*?)
    return matcher.group(1);

所以,基本上,我怎样才能匹配其他所有内容,但不是特定字符串,在我的情况下是字符串 core

请分享您对如何在 Java 中实现这一点的想法?

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用以下正则表达式:

^com\\.my\\.company\\.(?!core).+?\\.MyClassName$

【讨论】:

+1,但看起来你在最后一对反斜杠之前多了一个点。 codaddict:谢谢!这正是我想要的。【参考方案2】:

也许正则表达式不是写这个的最清晰的方法。

if (className.startsWith("com.my.company.") 
    && !className.startsWith("com.my.company.core.")) 


这很清楚它的作用,您可能会发现它更快。 ;)

【讨论】:

谢谢,它既简单又干净。 :-) 正则表达式很酷,但可能会变成一串神秘的符号,这会使以后阅读它的人很难确定它的作用或如何更改它。

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

...够匹配所有内容的正则表达式但是一个以特定模式开头的字符串(特别是index.php以及后面的内容,例如index.php?id=2342343)【问题讨论】:你不想匹配什么特定模式?如果字符串匹配,您是否无法匹配您的模式并且不做某 查看详情

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

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

正则表达式反向引用乘法[重复]

...学习正则表达式,我尝试解决的练习之一如下:我有一个字符串:"londonnewyork"我正在尝试匹配正则表达式。模式是这样的:r"(..o(.)).+(\\2)*"结果是ndonnewyork。据我了解,(\\2)匹配n但什么匹配ewyor 查看详情

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

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

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

】正则表达式匹配多个字符串但不匹配特定字符串【英文标题】:Regextomatchseveralstringsbutnotspecificones【发布时间】:2014-10-0814:32:01【问题描述】:我正在使用Perl来搜索和匹配每行中符合条件的字符串,并希望省略包含特定字符串... 查看详情

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

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

具有奇怪行为的正则表达式:将字符串与反向引用匹配以允许转义以及单引号和双引号

】具有奇怪行为的正则表达式:将字符串与反向引用匹配以允许转义以及单引号和双引号【英文标题】:RegExwithstrangebehaviour:matchingStringwithbackreferencetoallowescapingandsingleanddoublequotes【发布时间】:2011-04-3002:39:27【问题描述】:匹配... 查看详情

正则表达式匹配字母数字,除了特定的子字符串

】正则表达式匹配字母数字,除了特定的子字符串【英文标题】:Regextomatchalphanumericexceptspecificsubstring【发布时间】:2021-08-0412:28:57【问题描述】:编辑:强制性条件:正则表达式必须插入以下语句:Regexregex=newRegex("<REGEX_STRING... 查看详情

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

...:如何编写一个正则表达式来匹配任何不符合特定模式的字符串?我遇到了必须匹配(A和~B)模式的情况。【问题讨论】:PCRE最适合这个:参见RegexPatterntoMatch,Excludingwhen…/Except 查看详情

特定中文字符串正则匹配

最近遇到了一个匹配中文特定字符串的问题,记录下来问题描述:匹配“美丽乡村”中的一个字符或几个,如果是多个字符,顺序不能改变,如“丽乡”解决过程:之前知道匹配中文字符串,正则表达式中使用的是unicode编码的... 查看详情

在正则表达式中,匹配字符串的结尾或特定字符

】在正则表达式中,匹配字符串的结尾或特定字符【英文标题】:Inregex,matcheithertheendofthestringoraspecificcharacter【发布时间】:2022-01-0614:17:13【问题描述】:我有一个字符串。结尾不同,如index.php?test=1&amp;list=UL或index.php?list=UL&am... 查看详情

如果正则表达式不包含特定单词,如何匹配它?

...【发布时间】:2011-10-0204:08:25【问题描述】:如果给定的字符串不只包含给定的单词(例如“any”),我想用Python或JavaScript编写一个正则表达式来匹配。例如:any:不匹配AnY:不匹配anyday:匹配anyday:匹配blabla:匹配【问题讨... 查看详情

在正则表达式中,匹配字符串的结尾或特定字符

】在正则表达式中,匹配字符串的结尾或特定字符【英文标题】:Inregex,matcheithertheendofthestringoraspecificcharacter【发布时间】:2012-08-1811:27:59【问题描述】:我有一个字符串。结尾不一样,比如index.php?test=1&amp;list=UL或者index.php?l... 查看详情

如何使用正则表达式查找具有特定起始字符串的所有匹配项? [复制]

】如何使用正则表达式查找具有特定起始字符串的所有匹配项?[复制]【英文标题】:Howtousearegularexpressiontofindallmatcheswithspecificstartingstrings?[duplicate]【发布时间】:2020-03-0911:38:10【问题描述】:我已经使用bs4爬取了一些文本,我... 查看详情

用正则表达批量快速解决如“过滤注释的//”“查询特定单词”“匹配特定子字符串”等工作中难题(代码片段)

...则表达式的定义有以下几种:用某种模式去匹配一类字符串的公式,它主要是用来描述字符串匹配的工具。描述了一种字符串匹配的模式。可以用来检查字符串是否含有某种子串、将匹配的子串做替换或者从中取出符合... 查看详情

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

...\')?【发布时间】:2012-10-0920:31:27【问题描述】:如果字符串前面没有问号,我如何编写正则表达式模式以按特定分隔符拆分字符串?我编写了一 查看详情

删除元素的正则表达式与特定前缀不匹配

...在Impala或Hive中执行此操作。基本上假设我有一个这样的字符串f-150:aa|f-150:cc|g-210:dd每个元素由管道|分隔。每个都有前缀f-150或其他。我希望能够删除前缀并仅保留与特定前缀匹配的 查看详情

特定字符串的正则表达式匹配,例如 Ord(500) Ord(601) Ord(537)

】特定字符串的正则表达式匹配,例如Ord(500)Ord(601)Ord(537)【英文标题】:RegexMatchingforaspecificstringsuchasOrd(500)Ord(601)Ord(537)【发布时间】:2021-07-2109:26:30【问题描述】:我想查找并删除与Ord(537)匹配的所有字符串,即Ord-&gt;后跟包... 查看详情