我现在在构建运行时的SQL正则表达式时遇到了麻烦。

有点像:


用户输入搜索字符串(一个?代表1个字符[a-z0-9]):



  AA?001


Data:
AAA001
AAB001
AA7001
AA70012
AB0001

Result:
AAA001
AAB001
AA7001


最初,我在考虑将其除以[+?]的方式,然后条件将类似于:


  Startwith('AA')AND Endwith(“ 001”)AND LENGTH = 5)


但是这种方式不适用于模式:A?0?1。因此,我可能必须在运行时构建一个Regex,但是没有任何线索可以做到这一点。

任何建议/想法/建议将不胜感激。

最佳答案

^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以外的任何字符。

关于c# - 自动在SQL中建立REGEX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28402980/

10-12 20:00