0

我在获取要匹配的网址时遇到问题

 sregex rex = sregex::compile("(?:ftp|http|https)+://([\\S\^<\^>]+)", sregex::icase );

它匹配所有的网址,但它还包括在每场比赛结束时的 >> ,我试图否定它。我究竟做错了什么?

4

1 回答 1

1

我相信你想要的是这样的:

 sregex rex = sregex::compile("(?:ftp|http|https)://([\\S]+[^<>]*)", sregex::icase );

当是集合的第一个字符时,该字符^仅表示“不” 。^因此,^in[\\S\^<\^>]+并不意味着“不是”。当^不是集合的第一个字符时,它表示目标序列的开始或跟随行终止符,或没有特殊含义。

于 2013-01-14T03:43:34.023 回答