我在获取要匹配的网址时遇到问题
sregex rex = sregex::compile("(?:ftp|http|https)+://([\\S\^<\^>]+)", sregex::icase );
它匹配所有的网址,但它还包括在每场比赛结束时的 >> ,我试图否定它。我究竟做错了什么?
我相信你想要的是这样的:
sregex rex = sregex::compile("(?:ftp|http|https)://([\\S]+[^<>]*)", sregex::icase );
当是集合的第一个字符时,该字符^
仅表示“不” 。^
因此,^
in[\\S\^<\^>]+
并不意味着“不是”。当^
不是集合的第一个字符时,它表示目标序列的开始或跟随行终止符,或没有特殊含义。