c# 中有 Regex,我可以使用它来删除一些任意字符或字符范围,例如Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled)
. 但是什么是 C++ 中的等价物。我知道 Boost 里面有一个正则表达式库。但是对于这个操作,它是否可行以及它的性能如何?从 C++ 中的字符串中删除字符的最佳和快速方法是什么?
问问题
465 次
2 回答
0
我使用过 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) );
}
当然,如果您不需要正则表达式的强大功能,那么有很多字符串函数可以更快地从字符串中拼接字符。
于 2012-04-24T15:38:40.620 回答
0
你可能想要boost::regex_replace:
#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);
于 2012-04-24T16:58:20.400 回答