php preg_match函数中的正则表达式

时间:2012-07-25 11:37:33

标签: php regex digits

我有正则表达式

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

它正在工作,但是 当我写作

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

它也在起作用。问题是我需要在单词“shop”之后使用ony数字 shop1,SHOP2,...,shop123 我的模式需要改变什么?) 如果有人能给我一些关于我的正则表达式问题的例子,我会非常感激。感谢你:)。

1 个答案:

答案 0 :(得分:2)

请尝试使用此模式:

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

您只需使用\d代替[0-9]

/^\/shop\d+$/

解释

  • 由于/用于指示表达式的开始/结束,您必须将其转义(不表示表达式的结尾) - &gt; \/

  • ^锚点匹配应用正则表达式模式的字符串的开头。

  • $锚点匹配应用正则表达式模式的字符串末尾。

  • +重复一次或多次上一项。

查看有关reg-exps here的更多信息。