2016-02-04 33 views
0

我想用正則表達式是:^(?=.*[,])(,?)ABC(,?)$搜索字符串與正則表達式的SQL Server

我想的是:

^    // start 
(?=.*[,])  // contains at least one comma (,) 
(,?)ABC(,?)  // The comma is either in the beginning or in the end of the string "ABC" 
$    // end 

當然ABC的是應該是基於可變我搜索詞。

所以,如果ABC = 'abc'然後",abc""abc,"",abc,"相同,但總​​或"abcd"要做到這一點也歡迎

更好的辦法。

記錄中的值看起來像"abc,def,ghi,ab,cde...",我需要確定它是否包含我的元素(即'abc')。我無法改變數據結構。我們可以假定記錄絕不會只包含一個子值,所以假設值總是有一個逗號是正確的。

+0

所以要在具有字符串逗號來搜索'term'分離的術語? –

+0

是的,基本上正則表達式告訴它所有。它必須在開頭或結尾有一個逗號,以確保我的字符串不是其他字符串的子字符串,並且如果它是第一個字符串或最後一個字符串,它將匹配。 – DDan

+0

如何使用逗號分隔符分割字符串,然後在分割之後進行搜索? – Angelo

回答

2

如果你想知道,如果一個逗號分隔的字符串中包含abc,那麼我認爲like在任何數據庫的最簡單的方法:

where ',' + col + ',' like '%,abc,%' 
+0

這將不匹配「'abc,def'」 – DDan

+0

「abc」可能是第一個或最後一個項目 – DDan

+0

@Dan。 。 。當然這會。這就是爲什麼逗號在「喜歡」之前被預先和後置的原因。 –

相關問題