如何檢查,如果該字符串與表達式中使用的正則表達式C++ (其爲robots.txt的解析器)如何字符串匹配正則表達式中的C++
eg:
string will be an url
http://www.google.com/example/e/se/in
/*/e/*
意味着我需要匹配的URL是否匹配它是否存在....像/example/
正常查詢可以匹配使用子字符串,但..我怎麼能解析一些東西類似於此
如何檢查,如果該字符串與表達式中使用的正則表達式C++ (其爲robots.txt的解析器)如何字符串匹配正則表達式中的C++
eg:
string will be an url
http://www.google.com/example/e/se/in
/*/e/*
意味着我需要匹配的URL是否匹配它是否存在....像/example/
正常查詢可以匹配使用子字符串,但..我怎麼能解析一些東西類似於此
正則表達式在當前C++標準中沒有語言支持。您必須使用第三方庫,例如Boost.Regex或PCRE。
即將推出的C++ 0x語言標準確實在<regex>
頭文件中提供了正則表達式,但標準還沒有最終確定,編譯器對草案標準的支持是有限的。除非你已經開發了C++ 0x草稿的代碼,否則我會建議不要這個選項來確保你的代碼是可移植的。
這對C++ 0x不正確。 '
到目前爲止您嘗試過什麼?您是否看過任何現有的C++正則表達式庫,例如Boost(http://www.boost.org/doc/libs/1_46_0/libs/regex/)? – 2011-02-22 21:45:05
我試過這個'boost :: regex reg(「/ */a/*」); bool b1 = boost :: regex_search(「google.com/asd/a/asd」,reg);'但它與'google.com/asd/aa/asd'匹配 – newb 2011-02-22 22:09:12
您似乎將shell globs與常規表達式。 '*'的意思是「匹配前面的零個或多個」,而不是像任何字符串那樣「匹配任何字符串」。在兩個實例中將'*'更改爲'。*'。 – 2011-02-22 22:34:25