這可能是一個很難回答正則表達式的問題,但我無法解決它。這裏是我的正則表達式:正則表達式貪婪
regex = (^|(?<=))Football(((\S+)+?(?=Football)|(\S+)+)|)fun(((\S+)+?(?=Football)|(\S+)+)|)Football\ is\ important((?=)|$)
有了,我想捕捉這些:
text1 = "Football is fun I like Football is important"
text2 = "Fun to watch Football I think Football is important"
text3 = "Fun to watch Football I like Football"
但不是這樣的:
text4 = "Football is fun I like Football Football is important"
據我理解,表達不該」因爲這裏還有一個足球。第二(((\S+)+?(?=Football)|(\S+)+)|)
部分應該匹配I like
,因爲在此之後Football
在那裏,它不貪婪,因爲我加了?
後第二+
。最後一部分應該匹配Football is important
,所以有一個Football
(在中間)掛着。我如何修改它以使它符合我的需求?
更澄清的問題:
(((\S+)+?(?=Football)|(\S+)+)|)
部分應該沒有空格字符匹配,直到它認爲足球和返回什麼了。所以這個正則表達式不應該與text4匹配,因爲它只有兩個足球。另一方面text4
包含3個足球。希望現在更清楚。
對不起,這個愚蠢的例子;我改變了我的真實文本。
我想你可以使用一個簡單的正則表達式來完成這項工作。 –
你試圖從原始文本中捕獲什麼? – Totem
'^足球(\ w +){4}足球(\ w +)\ w + $'和很多正則表達式都會匹配您的句子! – Kasramvd