我现在在构建运行时 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。因此,我可能必须在运行时构建一个正则表达式,但没有任何线索来做到这一点。
任何建议/想法/推荐将不胜感激。
最佳答案
^AA[A-Z0-9a-z]001$
试试这个。查看演示。
https://regex101.com/r/wX9fR1/8
Quantifier: ? Between zero and one time
?不匹配单独的字符。它适用于其前面的字符。
还添加 ^$
anchor 以禁止部分匹配。
^AA\S001$
如果要匹配除空格
之外的任何字符。
关于c# - 自动在 SQL 中构建 REGEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28402980/