1

我想检查一个较大字符串中两个字符串之间的单词数是否<n。例如,假设我有一个字符串,如“一只快速的棕色狐狸跳过懒狗”。我想看看字符串“brown fox”和“lazy dog”之间的距离是否在较大的字符串中<5。什么是合适的python正则表达式?

我按照链接试过了。我的代码是

s='a quick brown fox jumps over the lazy dog'
m=re.search("'brown fox'\W+(?:\w+\W+){1,4}'lazy dog'",s)

但没有匹配。

4

2 回答 2

4

您正在尝试匹配单引号,但字符串中没有:

>>> re.search("brown fox\W+(?:\w+\W+){1,4}lazy dog", s)
<_sre.SRE_Match at 0x3045850>

>>> re.search("brown fox\W+(?:\w+\W+){1,3}lazy dog", s)
<_sre.SRE_Match at 0x3045920>

>>> re.search("brown fox\W+(?:\w+\W+){1,2}lazy dog", s)
(None)
于 2013-04-12T00:35:13.677 回答
2

尝试brown fox\s+(\S+\s+){0,4}lazy dog

于 2013-04-12T00:35:41.293 回答