C++ 相当于正则表达式。替换为C++;

C++ 相当于正则表达式。替换为C++;,c++,gcc,boost,C++,Gcc,Boost,c#中有一个正则表达式,我可以用它来删除一些任意字符或字符范围,如Regex.Replace(str,“[^a-zA-Z0-9.]+,”,RegexOptions.Compiled)。但是C++中的等价物是什么呢?我知道Boost里面有一个正则表达式库。但对于这一行动来说,它可行吗?它的性能如何?在C++中,从字符串中删除字符最好的方法是什么? < p>我使用了Boost,发现它既快又容易使用。例如: #include <boost/regex.hpp> bool detect_m

c#中有一个正则表达式,我可以用它来删除一些任意字符或字符范围,如
Regex.Replace(str,“[^a-zA-Z0-9.]+,”,RegexOptions.Compiled)
。但是C++中的等价物是什么呢?我知道Boost里面有一个正则表达式库。但对于这一行动来说,它可行吗?它的性能如何?在C++中,从字符串中删除字符最好的方法是什么?

< p>我使用了Boost,发现它既快又容易使用。例如:

#include <boost/regex.hpp>

bool detect_mypattern( const string& text )
{
    // A specific regex pattern
    static const boost::regex ep("[\\w\\s]{8}\\s{1}\\w{2}\\s{1}Test");
    return( boost::regex_match(text, ep) );
}
#包括
布尔检测模式(常量字符串和文本)
{
//特定的正则表达式模式
静态常量boost::regex-ep(“[\\w\\s]{8}\\s{1}\\w{2}\\s{1}测试”);
返回(boost::regex_匹配(text,ep));
}
当然,如果您不需要正则表达式的强大功能,那么有很多字符串函数可以更快地将字符从字符串中拼接出来。

您可能需要:

#包括
#包括
常量std::字符串输入;
boost::正则表达式匹配器(“[^a-zA-Z0-9.]+”;
常量std::字符串格式化程序(“”);
std::string output=boost::regex_replace(输入、匹配器、格式化程序);

这是boost,你不能出错,我想说,如果你真的关心性能,使用(特别是它的静态正则表达式)而不是boost.Regex。
#include <boost/regex.hpp>
#include <string>

const std::string input; 
boost::regex matcher("[^a-zA-Z0-9_.]+");
const std::string formatter("");

std::string output = boost::regex_replace(input, matcher, formatter);