我现在在构建运行时的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/