2014-10-07 61 views
0

我有這樣的PCRE正則表達式:(這個表達式與例如在RegExr http://regexr.com/39lbb正則表達式轉換PCRE到POSIX在MySQL查詢中使用正則表達式

/(?=.*?ben)(?=.*?john).*/ig 

,我有這個PCRE正則表達式:(這個表達式與例如在RegExr http://regexr.com/39lbh

/.*?\b(john|ben)\b.*/ig 

我怎麼可以這樣PCRE正則表達式轉換爲POSIX或如何創建相同的正則表達式的POSIX?我想在我的MySQL查詢(REGEXP http://dev.mysql.com/doc/refman/5.1/en/regexp.html

感謝

回答

1

剛落先行和非貪婪匹配,你不需要任何的這種問題,使用正則表達式。

[[:<:]](john|ben)[[:>:]] 

注意[[:<:]][[:>:]]啓動的字分別與結束字邊界,(\b是兩者)。

我也懷疑你想查找包含單詞'ben''john',不字符串匹配其內容,所以我假定.*是多餘的爲好。

+0

嗯...我測試在MySQL查詢你的表達,但它不工作:(爲什麼?.. – 2014-10-08 14:54:35

+0

「不工作」是不是一個錯誤的描述,你看到一個錯誤信息?如果有,是哪一個?如果?沒有,會發生什麼情況還有,你沒有澄清什麼表情*被suppoesed爲*做 – Tomalak 2014-10-08 15:10:48

+0

PS:當然,正則表達式的分隔符(正斜槓)不能在MySQL的認可 – Tomalak 2014-10-08 15:13:32