php正则表达式:如何正确转义字符?

时间:2013-04-25 17:12:15

标签: php regex preg-match

如何编写preg_match,以匹配字符串*My*

这不起作用:

$ptn = "/\*(.*)\*/";
$str = "*My*";
preg_match($ptn, $str, $matches);
print_r($matches);

因为它输出:

Array
(
    [0] => *My*
    [1] => *My*
)

而不是:

Array
(
    [0] => *My*
    [1] => My
)

1 个答案:

答案 0 :(得分:4)

在这里工作正常:

php > preg_match('/\*(.*)\*/', '*My*', $matches);
php > var_dump($matches);
array(2) {
  [0]=>
  string(4) "*My*"
  [1]=>
  string(2) "My"
}

请记住,$matches数组将始终包含位置0中的整个匹配字符串,然后单独匹配插槽1 +。