2012-07-24 58 views
0

我試圖在MySQL中與REGEX匹配其他詞的單詞,但我無法正確理解它。MySQL REGEX在一個單詞中的部分詞

例如,對於單詞foo搜索應該符合以下(不區分大小寫):

foobar 
barfoo 
foofoo 
football 
foo-bar 
foo_bar 

而且他們之間沒有匹配的場所,如:

foo bar 

我在網上搜索,發現了一些REGEX,但它們不符合上述所有選項。

這是我目前的模式:

REGEX '[[:<:]]'.$word.'(![:space:])[[:>:]] 
+0

'barfoobar'呢? – 2012-07-24 10:21:48

回答

0

我假設你會允許任何非空白字符之前或之後foo

然後你可以使用

'^[^[:space:]]*'.$word.'[^[:space:]]*$' 

轉換爲PCRE正則表達式,其中\S指非空格字符和\b意味着一個單詞邊界:

^\S*foo\S*$ 

所以這個匹配包含foo但不要的話不包含任何空格。

+0

好吧,這個作品差不多,它只是在foobar這樣的單詞中與「foo」這個單詞完全不符。確切的單詞foo不匹配 – SirCumz 2012-07-24 11:00:25

+0

您的示例沒有顯示您想單獨匹配'foo',而您的反例在'foo bar'中有一個單詞'foo',應該*不匹配...但是這是可能的。如果你能告訴我第一個或第二個正則表達式是否更適合你的需求,那麼將進行編輯。 – 2012-07-24 11:03:43

+0

是的,我的壞!對不起 第二適合我! – SirCumz 2012-07-24 11:04:44

相關問題