2011-11-03 89 views
1

MySQL在REGEXP查詢中不匹配多個單詞。有人請協助嗎? 例如,給定一個表的字段「名稱」和列出的值MySQL REGEXP不匹配多個單詞

NAME: 「阿爾法喝彩探戈」, 「朱麗葉喝彩」, 「Δ探戈」, 「查理的奧斯卡」

下面的查詢返回任何

select * from t1 where name regexp '(alpha|bravo|delta){2,}'; 

下面的查詢工作

select * from t1 where name regexp '(alpha|bravo|delta){1,}'; 

回答

0

我希望我理解正確...

正則表達式'(alpha | bravo | delta){2,}'正在尋找這些單詞中的任意一個的兩個或多個連續出現...所以,alphaalpha,alphabravo ,bravodelta會匹配...但不是阿爾法bravo。你在找'((alpha | bravo | delta)){2,}'或類似的東西嗎?

+0

我會使用'((alpha | bravo | delta)?){2,}',這樣最後的字符不一定是空格 – DaveyBoy

+0

我剛剛意識到一些東西:REGEXP函數將空格視爲嚴重的攻擊。我如何讓它忽略空格?例如,當我通過regexp'(alpha | bravo | delta){2,}'時,它就起作用。 (注意布拉沃之前的空間)。我如何讓它不介意全球意義上的空間?我必須說regexp'(* alpha * | * bravo * | * delta *){2,}'還是有一些更優雅的選項? – tribal