2016-09-23 60 views
-6

我想在一個字符串匹配短語用正則表達式的特定詞組如何檢查文本都存在與正則表達式

日誌:

敏捷的棕色狐狸跳過懶狗,bla bla,東西 東西

我想要一個正則表達式,可以匹配前。 "quick brown","over the"甚至可能更多的短語。所以我可以檢查是否有匹配,如果是的話,做一些事情。

如果所有給定的「詞組」都存在,我想讓它匹配,但如果只有一個存在於我的日誌中,則不會。

例如,如果我想在上面的日誌中搜索"quick brown""over the",我希望它能夠匹配。

但它不應該匹配,如果日誌是

「敏捷的棕色狐狸在一些跳懶狗,喇嘛喇嘛, 什麼東西」

,因爲它不能匹配"quick brown""over the"

也應該不會給比賽如果日誌說

「快速brownest狐狸躍過懶狗,喇嘛喇嘛,什麼東西 」

因爲"quick brown""over the"在那裏,但「快速的棕色」以「est」結尾,所以它不應該與之匹配。

我試過(quick brown\b|over the\b),但並沒有完全做到這一點對我來說,因爲我仍然獲得了比賽,如果一家之言,不存在

它必須是正則表達式,因爲該框架我使用正則表達式作爲參數

我知道有可能實現相同的一些代碼,但這不是我的選擇。它必須是正則表達式。

+0

不需要正則表達式。一個簡單的「Contains」檢查就足夠了。你可以遍歷你的'短語'列表,如果有匹配的話就做點什麼。 Gvie它一去,回來,如果你卡住,並帶上你的代碼 – musefan

+0

什麼應該匹配'「這個問題是可怕的張貼,並沒有顯示任何研究」? – HimBromBeere

+0

它必須是正則表達式,因爲我正在使用的框架採用正則表達式作爲參數 – Hafax

回答

0

我發現這樣的作品,嘗試不同的東西很多

(\bquick brown\b).*(\bover the\b) 

它有

匹配後的解決方案「敏捷的棕色狐狸跳過懶狗,BLA BLA,東西 東西」

但不是

「敏捷的棕色狐狸在一些跳懶狗,BLA BLA, 什麼東西」

而且不

「快速brownest狐狸躍過懶狗,BLA BLA,一些 東西」

如果你不關心短語的順序,你可以用這個

(\bquick brown\b).*(\bover the\b)|(\bover the\b).*(\bquick brown\b) 

該表達式檢查quick brownover the是否與之間存在任何內容。

你也可以做

(\bquick brown\b).+?(\bover the\b) 

這將使多場比賽,如果quick brownover the有多次。

在我的情況下,它沒有區別,但它可能爲其他人

+0

這匹配是怎麼回事「快速的棕色狐狸跳過懶惰的狗,bla bla,什麼東西」?無論如何,這不是你正在尋找的?這個解決方案是否工作?您也可以使用https://regex101.com進行正則表達式測試。 – HimBromBeere

+0

是的,這是我正在尋找的解決方案,我編輯的答案澄清,我犯了一個錯誤之前 - 我測試使用http://regexr.com/ – Hafax