ホームページ  >  記事  >  バックエンド開発  >  通常のキャプチャについて質問がありますか?

通常のキャプチャについて質問がありますか?

WBOY
WBOYオリジナル
2016-06-23 14:15:14783ブラウズ

$str="a1234a";
$preg="/(d){4}/i";

上記は 4 つの連続する数値と一致します。
次に、キャプチャ内の部分式は 1 (a部分表現)?
それとも 1324 (部分式)?
それとも 1、2、3、4 (4 つの部分式)?


ディスカッションへの返信 (解決策)

$str = "a1234a";$preg = "/(\d){4}/i";preg_match_all($preg, $str, $res);print_r($res);
Array を見てください
(

[0] => Array

(

] [0] => 1234
)

[1] => Array
(

したがって、次の部分式は次のようになります。



は 1 (部分式) ですか?
それとも 1324 (部分式)?
それとも 1、2、3、4 (4 つの部分式)?
一般に、最初の値は式全体によって取得される部分です

次に括弧と値があります


正規表現と同じです
最初の値は: 1234
2 番目の値は: 4
配列 $ を使用する場合
を表す arr、つまり $arr[0] == 1234
$arr[1] == 4

使用するもの (d){4} は、単一の数字が 4 回繰り返されるサブグループであることを意味します。実行後は次のようになります
d は 1 に一致、サブグループは 1
d は 2 に一致、同じサブグループ、前の値を上書き、サブグループは 2
d は 3 に一致、同じサブグループ、前の値を上書き、サブグループは 3
d は 4 つの同一のサブグループに一致し、前の値を上書きし、サブグループは 4 になります

(d{4}) の場合、明らかに前の値とは異なります。つまり、4 つの連続する数字がサブグループであることを意味します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。