如何忽略 boost::regex_search() 函数中的反斜杠字符
How to ignore backslash character in boost::regex_search() function?
我正在研究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"是完全合法的。
-
如果你试图匹配那个确切的序列,你需要转义反斜杠两次:一次是因为它在字符串文字,第二次,因为它具有特殊含义正则表达式。 您还需要转义引号,如果它们是您正在寻找的一部分:
""\\.+myFunction""
.但是,如果您尝试匹配精确的序列,则不需要正则表达式:std::search
基本上就足够了。 -
如果您尝试定义与除换行符以外的一个或多个字符的序列,后跟序列
"myFunction"
,用于初始化正则表达式将".+myFunction"
。
相关文章:
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 将字符随机转换为大写的函数
- 固有构造函数的字符和访问级别
- constexpr 函数获取常量字符*
- 将字符缓冲区强制转换为函数指针
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 将字符串数组传递给接受常量字符**的函数
- 在函数中返回无符号字符数组,但不返回指针
- 如何返回实际值(在我的例子中是无符号字符数组)而不是来自 C++ 函数的指针?
- 在函数 strcpy() 中访问字符数组时出现分段错误
- 如何循环访问 cpp 中的函数返回的字符指针数组
- 自定义 std::fstream,std::filebuf 的溢出和下溢函数未为每个字符调用
- 如何在字符函数中选择某些字符?
- 使用排序函数 c++ 对字符数组进行排序
- 使用 memcpy 函数C++复制字符数组
- C++返回反向字符数组的函数
- 模板总和函数冻结字符
- 在函数内初始化无符号字符指针将返回空指针
- C++ 错误:与调用<类构造函数(字符*&、字符*&、字符*&、字符*&)不匹配