2013-04-12 87 views
1

我想檢查一個較大字符串中兩個字符串之間的字數是否爲< n。例如,假設我有一個字符串,例如「一隻快速的棕色狐狸跳過了懶狗」。我想看看字符串「棕色狐狸」和「懶狗」之間的距離是否是大字符串中的< 5。什麼將是一個適當的Python正則表達式?計數兩個字符串之間的字數python regexp

我試着按照link。我的代碼是

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

但沒有匹配。

+0

不要忘了,像'''字符不是的一部分字符類'\ w',所以'\ S'(非空格)可能更合適。 – Patashu

回答

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) 
+0

是的,工作。我可以接受多個答案嗎? (您的和Patashu的)都是正確的。該錯誤與單引號匹配。 – rivu

+0

@rivu您可以同時提供兩個答案,但您只能接受一個答案,所以請接受您認爲更有用的答案/表示付出更多努力。 – Patashu

2

嘗試brown fox\s+(\S+\s+){0,4}lazy dog

相關問題