我有以下副词:
fastly onffly fly incomprehensibly totaly happily
lily sly more happily
most seriously
我只想匹配以ly结尾的普通副词,而不是以ly结尾的比较级和最高级。
上面的示例中,如果前一个单词是 more 或 most ,我不想匹配以 ly 结尾的单词。
我试图这样做:
(?:^[more|most])\s?\w*ly
但是我没有任何比赛。任何想法? demo that I tried to rework.
答案 0 :(得分:1)
没有“通用正则表达式”,如果您使用正则表达式,则背后有一些正则表达式库。在您的情况下,您尝试使用PCRE regex库,因此您可以考虑其中一个
\b(?<!\bmore |\bmost )\w*ly\b
请参见demo。或者,一个SKIP-FAIL regex:
\b(?:more|most)\s+\w*ly(*SKIP)(*F)|\w*ly\b
详细信息
\b
-单词边界(?<!\bmore |\bmost )
-当前位置之前不应有完整的单词more
或most
,后接1个空格。\w*
-0个以上的字符字符ly\b
-ly
的单词结尾(ly
后跟单词边界)。在“跳过失败”正则表达式中,\b(?:more|most)\s+\w*ly
匹配所有more
和most
~ly
单词组合,丢弃它们并匹配后缀为ly
的单词位置。