我想要一个正则表达式,它将捕获带有两个可选前缀的单词,但不是单独的第一个单词。我正在使用Python 3.6。 它应该捕获
cat
nicecat
bigcat
以及这两者之前的任何前缀,例如
supernicecat
fatbigcat
但它不应该捕获
fatcat
supercat
xyzcat
这是我到目前为止所拥有的。这不太合适。
\b(\w+)?(?:big|nice)?cat\b
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以做这样的事情
\b(?:\w*?(?:big|nice))?cat\b
将\ w *放入可选组。
答案 2 :(得分:1)
你走了:
^(?:[a-z]*(?:big|nice))?cat$
请务必启用多行标记。我假设每个条目都在自己的行上。
您的正则表达式的问题在于,由于问号,您使big|nice
或没有。我建议的是在它之前添加[a-z]*
,然后在(?:[a-z]*(?:big|nice))
表达式上添加问号,以便允许独立的cat
匹配。