首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt正则表达式逃逸序列问题

问Qt正则表达式逃逸序列问题
EN

Stack Overflow用户
提问于 2018-12-26 07:00:50
回答 1查看 528关注 0票数 0

我正在努力实现一个正则表达式。我在Ubuntu系统上使用Qt创建者。我用第三方工具测试了我的正则表达式。所以我相信问题不在于表达。我想要的前夫:

/\b(9410 ?d{18})\b/i

我将正则字符串放入一个QString变量中。它会导致一个错误:

QString test = "/\b(9410 ?\d{18})\b/i";未知的转义序列'\d‘

在试图修复的过程中,我在错误点添加了一个额外的\:

QString测试= "/\b(9410 ?d{18})\b/i“;qWarning() <<检验;

调试器指示(注意\):

/\b(9410 ?d{18})\b/i

我还尝试了一个原始字符串:

QString检验= R"(/\b(9410 ?d{18})\b/i)“;qWarning() <<检验;

调试器显示所有单一\替换为\。

/\b(9410 ?d{18})\b/i

所有这些尝试都没有导致工作上的失败。后面的斜杠有可疑的地方。感谢你的想法。我一定错过了一些简单的东西..。

编辑:这是一些简化的代码。当我运行它时,它返回"FALSE“,表示没有匹配。我在regex101.com上测试了这个正则表达式和数字。在那里工作。这就是为什么我相信在我的实现中有些东西是有缺陷的。只是不能把我的手指放在上面。

代码语言:javascript
复制
QRegularExpression re;
QString test = R"(/\b(9410 ?\d{18})\b/i)";
re.setPattern(test);
if(re.match("9410811298370146293071").hasMatch())
{
    qWarning() << "TRUE";
}
else {
    qWarning() << "FALSE";
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-26 16:08:49

清理了横梁,现在匹配了。

代码语言:javascript
复制
QRegularExpression re;
QString test = R"(9410 ?\d{18})";
re.setPattern(test);
if(re.match("9410811298370146293071").hasMatch())
{
    qWarning() << "TRUE";
}
else {
    qWarning() << "FALSE";
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53928550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档