【问题标题】:Regex in php preg_match functionphp preg_match 函数中的正则表达式
【发布时间】:2012-07-23 19:58:12
【问题描述】:

我有一个正则表达式模式

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

它正在工作,但是 当我写的时候

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

它也在工作。问题是我需要在单词“shop”之后有一个数字,例如 商店 1,商店 2,...,商店 123 我的模式需要改变什么?) 如果有人能给我一个链接,上面有一些我在正则表达式中遇到的问题的例子,我将非常感激。谢谢:)

【问题讨论】:

    标签: php regex digits


    【解决方案1】:

    试试这个模式:

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

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

    /^\/shop\d+$/
    

    解释

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

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

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

    • + 重复上一项或多次。

    查看更多关于正则表达式here的信息。

    【讨论】:

    • +1,做你所做的,但你比我快:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2014-06-28
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    相关资源
    最近更新 更多