以下の正規表現は、以下の URL から番号 (会社 ID) を取り出しますが、それがどのように機能するかを調べようとしています。hash to と pluses は何をしますか?
preg_match('#/company/([0-9]+)/(.+)#',http://test.net.au/company/198/test,$m);
ハッシュは、正規表現パターンの境界区切りとして使用されます。一般に、開発者はこれ/
に 、~
、または#
を使用します。この場合、正規表現パターンで 's#
をエスケープする必要がないようにするために使用されました。/
+
は、前の要素が 1 つ以上存在する必要があることを示します。最初のケースでは、実際にはすべての数字を指定する文字クラスです。2 番目のケースでは、1 つ以上の任意の文字 (.
はワイルドカード) が必要であることを意味します。
正規表現の最初と最後の文字は区切り文字です。彼らは、ここが正規表現の開始場所であり、ここが終了場所であると言っているだけです。
通常/
は次のように使用されます。
Example: "/foo/";
"#bar#";
あなたの例では"/company/"
、区切り文字を使用できないように一致させようとしている/
ので、#
代わりに使用されます。
プラス+
は、前のエントリの 1 つ以上に一致することを意味します。あなたの場合、それは1つ以上の数字(0から9まで)と一致することを意味します