gpt4 book ai didi

c++ - 如何忽略 boost::regex_search() 函数中的反斜杠字符?

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:31 24 4
gpt4 key购买 nike

我正在研究 C++,我从 xml 文件中获取正则表达式。我必须在长字符串中搜索这个正则表达式。例如我的正则表达式是:".+myFunction"

因此,如果我必须将此正则表达式放入 xml 文件中,那么我需要在上述正则表达式中的 '.' 之前使用 backslach 字符 '\'。即 "\.+myFunction"

现在我使用 boost::regex_search() 函数来搜索上面的正则表达式。但由于额外的反斜杠字符,函数返回 false。

那么如何在使用 boost::regex_search() 函数时忽略反斜线字符?

示例代码如下:

string longString  = "hdh::dfjdj::dfuhgj::myFunction.devide.and"
string regularExp = "\.+myFunction"
const boost::regex searchPattern(regularExp);
if(boost::regex_search(longString, searchPattern))
{
cout <<"Regular expresssion is found" << std::endl;
}

最佳答案

你问的问题不太清楚:

  • 在 XML 中,`".+myFunction"是完全合法的。

  • 如果您尝试匹配确切的序列,则需要转义反斜杠两次:一次因为它在a中有特殊含义字符串文字,第二次,因为它有特殊含义常用表达。您还需要转义引号,如果它们是您要查找的内容的一部分:"\"\\\\.+myFunction\""。但如果你想匹配一个精确的序列,你不需要正则表达式:std::search 就足够了。

  • 如果您尝试定义一个与除换行符之外的一个或多个字符的序列,后跟序列 "myFunction",用于初始化的字符串文字正则表达式为 ".+myFunction".

关于c++ - 如何忽略 boost::regex_search() 函数中的反斜杠字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11935233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com