2016-03-09 49 views
-1

如果字符串包含 ' - ',那麼它應該有1到20MySql的正則表達式模式

通行證的情況下

  1. - 附號您好

  2. HELLO-1

  3. Hello-11

  4. HELLO-20

正則表達式

(^Hello(([\-]^[1-9]$|^0[1-9]$|^1[0-9]$|^20$)])?) 

但如果字符串具有價值

HELLO-21

它能夠匹配你好,說找到1個匹配的,How to say匹配整個

+1

嘗試使用' - (0 [1-9] | 1 [0-9] | 20?)[[:>:]] |^[^ - ] + $' –

+0

您是否要求匹配1至20(含)之間的後綴,但不超過20? – Kris

+0

是的,但如果 - 是否存在 –

回答

1

如果您正在尋找在欄目內容以破折號後面是一個與20之間的數字結尾匹配的情況,但不超過20 ...

SELECT ... WHERE COLUMN_NAME REGEXP 'hello(-(0?[1-9]|1[0-9]|20))?$'; 

這應該匹配類案件:

  • 你好
  • 你好-01
  • 你好-1
  • 你好-10
  • 你好-19
  • 你好-20
+0

這是預期的,但我怎麼能寫在if條件如果字符串與 –

+0

我不完全理解你的問題,你想選擇不同的東西時正則表達式匹配? – Kris

+0

如果必須比較一個字符串,如果它通過上述條件 –