0

正規表現パターンがあります

<?php 
if(preg_match("/shop[0-9]/", '/shop43')){
    echo "YES";
}
else
{
    echo "NO";
}
 ?>

それは働いていますが、私が書くとき

if(preg_match("/shop[0-9]/", '/shop43d')){
    echo "YES";
}

それも機能しています。問題は、単語「ショップ」の後に1桁しか必要ないことです。たとえば、shop1、shop2、...、shop123パターンで何を変更する必要がありますか?)誰かができればとても感謝しています正規表現での私の問題のいくつかの例へのリンクを教えてください。ありがとう:)

4

1 に答える 1

2

代わりに次のパターンを試してください。

/^\/shop[0-9]+$/

\d次の代わりに単純に使用できます[0-9]

/^\/shop\d+$/

説明:

  • 式の開始/終了を示すため/に使用されるように、それをエスケープする必要があります(式の終了を示さないように) -> \/.

  • ^アンカーは、正規表現パターンが適用される文字列の先頭に一致します。

  • $アンカーは、正規表現パターンが適用される文字列の末尾に一致します。

  • +前の項目を 1 回以上繰り返します。

正規表現の詳細については、こちらを参照してください

于 2012-07-25T11:39:57.450 に答える