0

我有一个正则表达式模式

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

它正在工作,但是当我写

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

它也在工作。问题是我需要在单词“shop”之后有一个数字,例如 shop1,shop2,...,shop123 我需要改变我的模式什么?)如果有人可以,我会非常感激给我一个链接,其中包含一些我在正则表达式中遇到的问题的例子。谢谢 :)

4

1 回答 1

2

试试这个模式:

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

您可以简单地使用\d而不是[0-9]

/^\/shop\d+$/

说明

  • /用于指示表达式的开始/结束,您必须对其进行转义(不指示表达式的结束) -> \/

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

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

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

在此处查看有关 reg-exps 的更多信息。

于 2012-07-25T11:39:57.450 回答