1

文字列が次の形式であるかどうかを確認する必要があります: xxx[yz]

ここで、y と z は 2 つの数値です。たとえば、y が 1000 で z が 2000 の場合、これらは有効になります。

xxx1000 xxx1500 xxx1900 xxx2000

正規表現でこれを達成する方法はありますか?

4

2 に答える 2

3

y特にとzが変数の場合、ここで正規表現を使用する意味がわかりません。正規表現を使用して形式をテストしますが、右端の n 文字を取得し (グループでキャプチャするのが最も簡単です)、整数に解析して、範囲内にあるかどうかをテストします。

yとが一定の場合zは、必ず先に進んでください。

xxx(2000|1[0-9]{3})$
于 2012-09-03T01:21:15.247 に答える
2

この種の評価は、あなたがそれを助けることができれば、実際には正規表現に含まれるべきではありません。正規表現を使用してフォーマットでテストを実行できますが、他の関数を使用してコンテンツをテストできます。

$in = "xxx1234";
if( preg_match("/^xxx(\d{4})$/",$in,$m) && $m[1] >= 1000 && $m[1] <= 2000) {
    // ok!
}
于 2012-09-03T01:30:17.990 に答える