在c#中有正则表达式,我可以用它来删除一些任意字符或字符范围,如Regex.Replace(str, "[^a-zA-Z0-9_.]+", "", RegexOptions.Compiled)
。但是在C++中相当于什么。我知道Boost有一个正则表达式库。但是对于这个操作,它是否可行以及它的性能如何?什么是从C++中的字符串中删除字符的最好和最快捷的方式?相当于Regex.Replace in C++
0
A
回答
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);
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));
}
当然,如果你不需要正则表达式的力量,有大量的字符串函数,可能可以做的拼接字符更快的工作在一个字符串。
相关问题
- 1. MySQL“IS IN”相当于?
- 2. 相当于 'IN' 或sqoop
- 3. 相当于SQL IN子句
- 4. C#Regex.Replace
- 5. C++相当于C
- 6. 相当于cmd的python“for %% a in(%*)做”
- 7. 相当于C#
- 8. C#相当于pydoc
- 9. Vb.net相当于C#
- 10. C/C++相当于C#System.Net.Mail
- 11. 的Mnesia相当于SQL的NOT IN
- 12. Cassandra API相当于“SELECT ... FROM ... WHERE id IN('...','...','...');”
- 13. appengine相当于一个“NOT IN”查询
- 14. 在CAML中相当于SQL IN
- 15. LINQ to Dataset - 相当于sql(where ... in ...)
- 16. Django 1.1相当于'in'运算符
- 17. strtoul相当于C#
- 18. Struct.Pack相当于C#
- 19. C#相当于InStrRev
- 20. httplib相当于C
- 21. C#ULONG_PTR相当于
- 22. C#相当于fprintf
- 23. ungetc相当于c#
- 24. C#相当于FREAD
- 25. C++相当于java.lang.Integer.MIN_VALUE
- 26. ON_REGISTERED_MESSAGE C#相当于
- 27. C-pstree相当于
- 28. C#相当于db.repairDatabase()
- 29. C++相当于tailq
- 30. regex.replace c#diacritics
它的提升,你不能去那个错了,我会说 – 2012-04-24 15:32:05
如果你真的关心性能,使用[Boost.Xpressive(HTTP:// www.boost.org/libs/xpressive/)(特别是它的静态正则表达式),而不是Boost.Regex。 – ildjarn 2012-04-24 16:47:42