2015-02-09 55 views
0

我現在在構建運行時搜索SQL正則表達式時遇到了麻煩。在SQL中自動構建REGEX

有點它像:

  • 用戶輸入搜索字符串(?一個表示1個字符[A-Z0-9]):

AA 001

Data: 
AAA001 
AAB001 
AA7001 
AA70012 
AB0001 

Result: 
AAA001 
AAB001 
AA7001 

起初,我正在考慮用[+?]分割它的方式,然後是條件NS會是這樣的:

Startwith( 'AA')和ENDWITH( 「001」)和長度= 5)

但這種方式不符合模式要去工作:A 0? 1。所以,我可能不得不在運行時構建一個Regex,但沒有任何線索可以做到這一點。

任何建議/想法/建議將不勝感激。

+1

你是說這個'AA.001'?如有必要添加錨點,'^ AA.001 $' – 2015-02-09 04:50:39

+0

ohh對,只需要更換?點。我甚至不知道。之前。對REGEX來說是新的。謝謝@AvinashRaj – Kingcesc 2015-02-09 04:58:11

回答

1
^AA[A-Z0-9a-z]001$ 

試試看。

https://regex101.com/r/wX9fR1/8

Quantifier: ? Between zero and one time 

? does not match a character on its own.It works on character preceded by it.

同時添加^$錨以禁止部分匹配。

^AA\S001$ 

如果您想匹配除space以外的任何字符。

+0

謝謝,但正則表達式取決於用戶的輸入。喜歡:??? 001或A ??? 01,...所以AvinashRaj上面提到的方式對我有效:) – Kingcesc 2015-02-09 05:22:54

+1

@Kingcesc'.'也允許'AA 001'。你是否想要允許'space'如果你想要所有但沒有空格,請使用'\ S'。 – vks 2015-02-09 05:28:01