c# - 自动在 SQL 中构建 REGEX

标签 c# mysql regex

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

相关文章:

c# - TransactionScope helper ,无误地耗尽连接池 - 帮助?

php - 用 mysql 数据填充选择框

c# - 为什么这没有得到括号之间的东西?

javascript - 如何匹配行首或行尾的正则表达式?

mysql - 将 vb.net 中的 TimeofDay 转换为分钟

使用 sed|awk 和组进行替换的正则表达式

c# - 图像的模糊匹配部分

c# - For 循环和 DateTime 问题

c# - 随机顺序填充的最佳 C# 数据结构?

php - 以编程方式获取表mysql之间的关系