1. ホーム
  2. regex

[解決済み] URLにセミコロンが含まれていても、有効なのでしょうか?

2022-02-10 23:33:13

質問

正規表現を使用して、プレーンテキストのURLをクリック可能なリンクに変換しています。

@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.-]*(\?\S+)?)?)?)@

しかし、本文中では、URLが1行に1つずつ列挙され、最後にセミコロンが付くことがあります。本当のURLには、";"が含まれていません。

http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=275;
http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=123;
http://www.aaa.org/pressdetail.asp?PRESS_REL_ID=124

URLにセミコロン(;)を入れることは許されるのでしょうか、それともセミコロンはURLの終わりを示すものと考えていいのでしょうか?私の正規表現ではどうなるのでしょうか?

どのように解決するのですか?

A セミコロンが予約されています であり、その特別な目的(スキームに依存する)のためにのみ使用されるべきです。

2.2項を参照。

多くのURLスキームでは、特定の 文字は特別な意味を持っています。 これらの文字が URLのスキーム固有の部分には 指定されたセマンティクスです。もし、文字 あるオクテットに対応する スキームで予約されている場合、そのオクテットは が符号化される。 文字 ";", "/", "?", ":", "@", "=" and "&" は、以下の通りです。 を使用することができます。 特別な意味のために予約された スキームを使用します。他の文字を使用することはできません。 スキーム内で予約する。