我想匹配一個模式,其中必須出現兩個單詞,但我不能讓我的正則表達式工作。模式的所有單詞必須在正則表達式
結果爲空。爲什麼?
select 'only test bla dido simple' REGEXP '^(\\?=.*\\?(simple))(\\?=.*\\?(only))*$';
我想匹配一個模式,其中必須出現兩個單詞,但我不能讓我的正則表達式工作。模式的所有單詞必須在正則表達式
結果爲空。爲什麼?
select 'only test bla dido simple' REGEXP '^(\\?=.*\\?(simple))(\\?=.*\\?(only))*$';
對於話簡單和僅常規的正則表達式是^(?=.*\bsimple\b)(?=.*\bonly\b).*$
。
接受這個正則表達式mysql你必須根據需要添加轉義\
個字符 - 現在是你的任務。
你的結果實際上是零,而不是NULL
。 MySQL REGEXP
運算符返回0表示不匹配,1表示匹配。 (如你所知,NULL
在RDBMS的世界中有特定的含義。)
所以問題是,你的特定正則表達式匹配什麼?讓我們解構它。
'^(\\?=.*\\?(simple))(\\?=.*\\?(only))*$'
它開始^
與$
結束,所以它必須將整個字符串,而不是字符串匹配。
它由兩個串聯的表達,無論是形式的
(\\?=.*\\?(word))
據我所知,你要匹配:
。輸入文本中沒有任何等號。
您可以使用此語句。當然,它返回零,因爲簡單的單詞只在輸入文本中出現在單詞後面。
SELECT 'only test bla dido simple' REGEXP '^.*(simple).*(only).*$'
MySQL不處理(?=pattern)
lookahead表達式,如果這就是你想要做的。
非常感謝你:-), – schweinsteiger
但是我的結果是零:-( – schweinsteiger
@ollie jones mysql(?= pattern)lookahead的解決方法是什麼? – shadesco
我想mutch從字符串「onty test dido簡單」的2個字(簡單而唯一),但我bekomme沒有這樣的結果:
+ ------------------ --------------------------- +
| ''只測試簡單'REGEXP'^(\\?=。* \\?(簡單))(\\?=。* \\?only))* $'
| + ---------------------------------------------- +
| 0 |
+ ---------------------------------------------- +
– schweinsteiger
@AbdelillahFarka,看看[這裏](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work) –
歡迎來到Stackoverflow。在你的問題中使用一些形式是有幫助的:這個系統可以作爲一個檔案來幫助其他人提出類似的問題。我編輯了你的問題來幫助你做到這一點。此外,您應該接受幫助您的答案,方法是重新查看問題並單擊該答案旁邊的綠色複選框。 –