1. ホーム
  2. regex

[解決済み] 正規表現でのコロン記号の使用

2022-01-31 06:31:53

質問内容

私は正規表現に慣れていません。regularexperssion.comで勉強しています。質問ですが、正規表現でのコロン(:)の使い方を知りたいのです。

例えば

$pattern = '/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/';

にマッチします。

$url1  = "http://www.somewebsite.com";
$url2  = "https://www.somewebsite.com";
$url3  = "https://somewebsite.com";
$url4  = "www.somewebsite.com";
$url5  = "somewebsite.com";

ええ、どんな助けでも大いに結構です。

解決方法は?

コロン : は単にコロンです。例えば、捕捉しないクラスタリング(非捕捉グループとも呼ばれる)のような特別な場合を除き、何の意味もありません。

(?:pattern)

また、キャラクタークラスなどでも使用できます。

[[:upper:]]

しかし、あなたの場合、colonはただのコロンです。

正規表現で使用される特殊文字。

文字クラスで [-+_~.\d\w] :

  • - 手段 -
  • + 手段 +
  • _ 手段 _
  • ~ 手段 ~
  • . 手段 .
  • \d は任意の数字を意味する
  • \w は、任意の単語文字を意味します。

これらのシンボルは、シンボルクラスで使用されているため、このような意味を持ちます。 [] . シンボルクラスがない場合 +. は特別な意味を持ちます。

その他の要素

  • =? 手段 = は、0回でも1回でも発生する可能性がある、言い換えれば = が発生するかどうか、オプション = .