0

以下の正規表現は、以下の URL から番号 (会社 ID) を取り出しますが、それがどのように機能するかを調べようとしています。hash to と pluses は何をしますか?

preg_match('#/company/([0-9]+)/(.+)#',http://test.net.au/company/198/test,$m);
4

3 に答える 3

1

ハッシュは、正規表現パターンの境界区切りとして使用されます。一般に、開発者はこれ/に 、~、または#を使用します。この場合、正規表現パターンで 's#をエスケープする必要がないようにするために使用されました。/

+は、前の要素が 1 つ以上存在する必要があることを示します。最初のケースでは、実際にはすべての数字を指定する文字クラスです。2 番目のケースでは、1 つ以上の任意の文字 (.はワイルドカード) が必要であることを意味します。

于 2012-11-22T00:51:18.370 に答える
1

正規表現の最初と最後の文字は区切り文字です。彼らは、ここが正規表現の開始場所であり、ここが終了場所であると言っているだけです。

通常/は次のように使用されます。

Example: "/foo/";
         "#bar#";

あなたの例では"/company/"、区切り文字を使用できないように一致させようとしている/ので、#代わりに使用されます。

プラス+は、前のエントリの 1 つ以上に一致することを意味します。あなたの場合、それは1つ以上の数字(0から9まで)と一致することを意味します

于 2012-11-22T00:49:25.873 に答える