c++ - 如何允许最终用户使用正则表达式创建验证规则?

标签 c++ regex c++11

在我的应用程序中,我允许用户使用承租人 '*''?' 创建一些验证规则,其中 '*' 表示许多承租人和 '?' 表示一个字符,例如用户可以写 "*Ma?s*" 所以它应该匹配这样的东西 "ajdg adbf MaKs sjklfd" 抱歉这个例子,但我脑子里什么都没有,也许用户输入了更复杂的规则。

我通过将规则和匹配字符串发送到 SQL Server 数据库并将每个 '*' 替换为 '%' 和每个 '? ''_' 并像条件一样使用并且效果很好,但是用户可以输入很多验证规则和很多匹配项所以有很多数据库操作所以我以为我晚上使用新的 c++ 11 正则表达式在客户端执行此操作,我搜索了很多并阅读了很多文章但没有答案。

那么这可以在正则表达式中完成吗?以及如何?

最佳答案

如果你想创建一个正则表达式,你只需要将你的规范转换为一个正则表达式。为此,只需替换:

  • * by .*(或 .+,取决于您是否需要至少一个字符)
  • ? 通过

注意:

. 匹配任何字符。如果您只查找字母,可以使用 [a-zA-Z] 替换 .。对于数字,\d。对于字母和数字,[a-zA-Z0-9]

关于c++ - 如何允许最终用户使用正则表达式创建验证规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15085502/

相关文章:

c++ - 在嵌入式 Python C++ 应用程序中导入 Numpy

c++ - 为什么#define 不好,什么是合适的替代品?

mysql - grepWin 中的正则表达式匹配文本 block 中由任何内容分隔的三个指定单词

c++ - getline() 函数在输入之前读取空白

C++令人困惑的状态变量行为

c++ - 在 C++ 中显示字符串、vector<int> 映射

c++ - 对字符串拷贝进行迭代器运算的更简单方法

仅用不间断空格替换多个空格的 Java 正则表达式

php - 用于匹配值并替换为特定相关值的正则表达式规则

c++ - C++11 中原子变量的复制初始化