regex 匹配句子的正则表达式,该句子包含带有特定后缀和定义的结束词的单词

gj3fmq9x  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(117)

我试图匹配一个句子,其中包括一个词与特定的后缀和一个特定的词在结束。
例如,句子模板为:
“单词单词单词(不管前面有多少个单词)单词后缀该特定单词。”
我已经试过了,但一开始就对不上。

(\w+)(SUFFIX)\s+thatspEcificword(suffix)?
zpgglvta

zpgglvta1#

这应该行得通:

正则表达式

.*(\b.*SUFFIX\b).*(specificword)$

参见demo

解释

  • .*-搜索零个或多个任意类型的字符
  • (\b.*SUFFIX\b)-搜索以后缀结尾的单词
  • (specificword)$-搜索句末的"特定单词"。

注:

如果您无法匹配整个单词为后缀的匹配项,则需要将正则表达式更改为:

.*(\b.+SUFFIX\b).*(specificword)$

.+确保后缀前至少有一个字符

yhqotfr8

yhqotfr82#

由于问题标签与python相关,将尝试从python视图中回答。
如果你只想字符串以SUFFIX thatspecificword结尾,那么你可以简单地编写如下代码-

pattern = "SUFFIX thatspecificword"
s = "word word word (doesn't matter how many words before) wordSUFFIX thatspecificword"
if s.endswith(pattern):
    print("match found")
else:
    print("match not found")

但是如果你想要以wordSUFFIX thatspecificword结尾的字符串,其中word可以是任何单词,也就是说SUFFIX必须是单词后缀,那么你可以看看python内置的名为re的包,它处理正则表达式-

import re

pattern = "\wSUFFIX thatspecificword$"
s = "word word word (doesn't matter how many words before) wordSUFFIX thatspecificword"
if re.search(pattern, s):
    print("match found")
else:
    print("match not found")

相关问题