2014-04-28 178 views
0

我希望有一個正則表達式匹配像「T」或「T-日」的所有字符串但不包含唯一的「日」值正則表達式的字符串

我現在的正則表達式,這是一個:

REGEXP = '[T-Th]' 

但它的所有字符串「T」匹配「t個」和「日」的「日」是不可取的

+1

這是不完全清楚。你能發佈應該匹配的字符串的特定完整示例以及應拒絕的示例嗎? –

+0

'[T-Th]'與'[Th]'相同(與T或h相匹配,而不是「Th」)。 – user2864740

+0

我想匹配字符串,如'T','T-Th',但不包含僅包含值'Th'的字符串 – Labrosb

回答

0

括號中的-角色是專門爲正則表達式。當使用文字時,它必須被轉義。你的問題的一個很好的替代可能是這樣的:

REGEXP = '(T-Th|T(?!h))' 
+0

'-'只在字符類中特殊。 – user2864740

+0

除了逃避不需要,我認爲這可能是OP所要求的... –

+0

@MichaelBerkowski錯誤的信息仍然是錯誤的,應該在被接受之前糾正。否則,你會用一瓶好的葡萄酒來攝取毒素。 – user2864740

1
REGEXP = '(T-Th|T[^h])' 

我們要麼匹配T-Th從字面上看,或匹配T這後面沒有什麼,但一個h。換句話說:T,T-Th,但不是Th

Regex101

1

如果我有邏輯正確,你想要的字符串中'T',你想一個'T'不跟'h'

where col like '%T%' and 
     replace(col, 'Th', '') like '%T%'