regex - 使用 cpp11 正则表达式时出现正则表达式错误
问题描述
我试图使用 验证密码的复杂性std::regex
,并获得一些示例,例如:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$
我把它翻译成
regex pwd_regex=regex(string("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,20}$"));
regex_error
但是在运行时出现错误代码 4 (gcc 4.8.5)的异常。
怎么了?我在这个问题中尝试了其他示例,但也失败了。
解决方案
此问题中使用的模式与您使用的模式不同,如下所示:
std::string str("password");
std::regex r("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,20}$");
std::smatch m;
std::regex_search(str, m, r);
推荐阅读
- certificate - 更新到 VSCode 1,56.1,现在从我的扩展程序中获取 REST 调用的证书错误。V 1.55.2 工作正常
- php - 在 json 中列出具有最新提交 id 的 git 分支
- c# - 悬停在游戏对象统一时如何显示文本
- next.js - NextJS 动态路由:如何捕获 index.tsx
- javascript - 如何跳过键值对中的未定义/缺失值
- symfony - Symfony 覆盖自动装配的服务
- python - 在mysql中存储带有特殊字符的字符串
- api - 类没有实例方法'[]' Flutter
- javascript - 如何在服务器端渲染中获取持久化的 redux 状态而不是初始状态?
- typescript - React Native 与 TypeScript tfjs-models/universal-sentence-encoder 模型加载错误