Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我的c+有什么问题+;boost正则表达式函数? 包括 #包括 #包括 #包括 使用名称空间std; 使用名称空间boost; 字符串_getBasehtttp(字符串url) { 正则表达式exrp(“^(?:http://)?([^\\/]+)(.*)”; 匹配结果是什么; if(regex_搜索(url、what、exrp)) { 字符串基(what[1]。第一,what[1]。第二); 返回基地; } 返回“”; } int main(){ 不能_C++_Regex - Fatal编程技术网

C++ 我的c+有什么问题+;boost正则表达式函数? 包括 #包括 #包括 #包括 使用名称空间std; 使用名称空间boost; 字符串_getBasehtttp(字符串url) { 正则表达式exrp(“^(?:http://)?([^\\/]+)(.*)”; 匹配结果是什么; if(regex_搜索(url、what、exrp)) { 字符串基(what[1]。第一,what[1]。第二); 返回基地; } 返回“”; } int main(){ 不能

C++ 我的c+有什么问题+;boost正则表达式函数? 包括 #包括 #包括 #包括 使用名称空间std; 使用名称空间boost; 字符串_getBasehtttp(字符串url) { 正则表达式exrp(“^(?:http://)?([^\\/]+)(.*)”; 匹配结果是什么; if(regex_搜索(url、what、exrp)) { 字符串基(what[1]。第一,what[1]。第二); 返回基地; } 返回“”; } int main(){ 不能,c++,regex,C++,Regex,http://不匹配,但是它是可选的,所以这没有问题;“一个或多个非斜杠字符”匹配httpasd:,当然*然后匹配斜杠(包括)中的所有字符这将与任何通用的正则表达式实现一样,没有C++的特定性! ^((http://))([^ \//+)(*)$ < /代码> < /p> (?:http://)?末尾的?表示该位是可选的 此([^\\/]+)捕获并匹配任何非\或/ 此(.*)捕获到行尾的所有其他内容 也许你在追求更像 ^(?:https?:/)([^\\/]+)(.*)$ 可能考虑沿着行的完整

http://不匹配,但是它是可选的,所以这没有问题;“一个或多个非斜杠字符”匹配
httpasd:
,当然
*
然后匹配斜杠(包括)中的所有字符这将与任何通用的正则表达式实现一样,没有C++的特定性!

<代码> ^((http://))([^ \//+)(*)$ < /代码> < /p>
(?:http://)?
末尾的?表示该位是可选的
([^\\/]+)
捕获并匹配任何非\或/
(.*)
捕获到行尾的所有其他内容

也许你在追求更像
^(?:https?:/)([^\\/]+)(.*)$

可能考虑沿着

行的完整URL语法
 file://                                        /C:/temp/app/example.html
 file://     C                             :    /temp/app/example.html
 file://     C                             :    \temp\app\example.html
 http://user@www.hotmail.passport.login.net:8080/test/url.htm?view=smart
[method][               server                   ][   path   ][optional]
        [user][         domain             ][port]
那么你的正则表达式就更像

([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*://)?(([^@/\\\\]+@)?([a-zA-Z0-9_'!~\\-,;&=\\.\\$\\*\\(\\)\\+]+)(:\\d*)?)?([/\\\\][^?]*)?(\\?.*)?

@raj,这完全取决于你想匹配什么,不想匹配什么。我很高兴@Greg能够预言这一点(我从你的接受程度推断),因为我的思维阅读能力有限;-)。
([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*://)?(([^@/\\\\]+@)?([a-zA-Z0-9_'!~\\-,;&=\\.\\$\\*\\(\\)\\+]+)(:\\d*)?)?([/\\\\][^?]*)?(\\?.*)?