正则表达式的字符串

时间:2014-04-28 20:13:15

标签: mysql regex

我想要一个正则表达式来匹配所有字符串,例如' T'或者' T-Th'但不是仅含有' Th'

我现在的正则表达式就是这个:

REGEXP = '[T-Th]' 

但它匹配所有字符串' T' ,' T-Th'和' Th'哪个' Th'是不可取的

3 个答案:

答案 0 :(得分:1)

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

我们要么字面匹配T-Th,要么匹配除了T之外没有任何内容的h。换句话说:TT-Th,但不是Th

Regex101

答案 1 :(得分:1)

如果我的逻辑正确,您希望字符串中有'T',并且您希望'T'后面没有'h'

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

答案 2 :(得分:0)

括号中的-字符对于正则表达式是特殊的。当使用是文字时,它必须被转义。您的问题的一个很好的选择可能是:

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