使用php变量的preg_匹配问题

使用php变量的preg_匹配问题,php,regex,Php,Regex,我想在preg_匹配中结合一些正则表达式使用一个变量: $string = "cheese-123-asdf"; $find = "cheese"; if(preg_match("/$find-/d.*/", $string)) { echo "matched"; } 在我的模式中,我尝试使用cheese进行匹配,后面跟一个-和一个数字,后面跟其他任何数字。您为\输入了错误的/: if(preg_match("/$find-\d.*/", $string)) { *也不是必需的,因为

我想在preg_匹配中结合一些正则表达式使用一个变量:

$string = "cheese-123-asdf";
$find = "cheese";
if(preg_match("/$find-/d.*/", $string)) {
    echo "matched";
}

在我的模式中,我尝试使用cheese进行匹配,后面跟一个-和一个数字,后面跟其他任何数字。

您为
\
输入了错误的
/

if(preg_match("/$find-\d.*/", $string)) {

*
也不是必需的,因为模式将匹配任何一种方式。

对于数字,它是
\d

if(preg_match("/$find-\d.*/", $string)) {
  • /d
    更改为
    \d
  • 无需使用
    *
  • 如果您的字符串由用户定义(或可能包含某些字符(例如:
    /
    *
    ..
    ),则可能会导致您的匹配出现问题
  • 代码:

    
    
    <?php
    $string = "cheese-123-asdf";
    $find = "cheese";
    if(preg_match("/$find-\d/", $string)) 
    {
        echo "matched";
    }
    ?>