Preg将字符串与$,数字和字母匹配

时间:2014-05-29 19:43:52

标签: php regex preg-match

我试图preg_match这个字符串。

$word = "$1$s"; 
or 
$word = "$2$s"

if(preg_match('/^\$[1-9]{1}\$s$/' ,$word)){
   echo 'true';
} else {
  echo 'false';
}

我尝试了这个,但它没有给出真正的结果。 我怎样才能做到这一点。

2 个答案:

答案 0 :(得分:4)

PHP正在尝试render the variable $s in the double quoted string。改为使用单引号,您可以删除正则表达式中的{1},因为它不是必需的。

$word = '$1$s';

if (preg_match('/^\$[1-9]\$s$/', $word)) {
    echo 'true';
} else {
    echo 'false';
}

您还可以在双引号字符串中转义$

$word = "$1\$s";
// Note $1 doesn't need to be escaped since variables can't start with numbers

最后,您可以通过查看$word实际相等的内容(启用错误报告)来了解原因无效:

$word = "$1$s"; // Notice: Undefined variable: s on line #
echo $word;     // $1

答案 1 :(得分:-1)

试试这个:

if(preg_match('/\$[1-9]{1}\$s/',$word)){
    echo 'true';
} else {
    echo 'false';
}