我无法获得与之匹配的网址
sregex rex = sregex::compile("(?:ftp|http|https)+://([\\S\^<\^>]+)", sregex::icase );
它匹配所有网址,但在每个匹配项的末尾也包含>>,我正尝试取反。我究竟做错了什么?
最佳答案
我相信你想要的是:
sregex rex = sregex::compile("(?:ftp|http|https)://([\\S]+[^<>]*)", sregex::icase );
当
^
是集合的第一个字符时,字符^
仅表示“不是”。因此,^
中的[\\S\^<\^>]+
并不表示“不是”。如果^
不是集合的第一个字符,则表示beginning of a target sequence or follows a line terminator,或没有特殊含义。