使用php变量preg_match问题

时间:2012-12-13 20:41:04

标签: php regex

我想在preg_match中使用一个变量并结合一些正则表达式:

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

在我的模式中,我尝试使用奶酪匹配,然后是 - 和1位数,然后是其他任何东西。

3 个答案:

答案 0 :(得分:3)

您为/错误输入了\

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

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

答案 1 :(得分:3)

  1. /d更改为\d
  2. 无需使用.*
  3. 如果您的字符串是由用户定义的(或者可能包含某些字符(例如:/*...)),则可能会导致您的匹配出现问题。
  4. 代码:

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

答案 2 :(得分:1)

表示数字,\d

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