0

URLを一致させるのに問題があります

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

これはすべてのURLに一致しますが、各一致の最後に>>が含まれているため、否定しようとしています。私は何が間違っているのですか?

4

1 に答える 1

1

私はあなたが望むものはこれだと信じています:

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

がセットの最初の文字である場合、文字^は「ない」を意味するだけです。^したがって、^in[\\S\^<\^>]+は「ない」という意味ではありません。^がセットの最初の文字でない場合は、ターゲットシーケンスの開始を示すか、行末記号の後に続くか、特別な意味はありません。

于 2013-01-14T03:43:34.023 に答える