2012-07-25 32 views
0

我有一个正则表达式模式正则表达式在PHP的preg_match功能

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

这是工作,但 当我写

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

,它正在too.The问题是,我需要有ONY例如 shop1,shop2,...,shop123 我需要改变我的模式吗?) 如果有人可以给我一个关于我的问题的例子的链接,我将非常感激。正则表达式。谢谢你:)

回答

2

尝试这种模式,而不是:

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

您可以简单地使用\d代替[0-9]

/^\/shop\d+$/ 

说明

  • 至于/用于一个指示挞/表达式结尾你必须逃避它(不表示表达式的结尾) - >\/

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

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

  • +重复以前的项目一次或多次。

查看关于REG-EXPS here更多信息。

+1

+1,正是你所做的一切,但你比我快:) – DonCallisto 2012-07-25 11:41:12