无法使用echo输出正则表达式数组。注意:未定义的偏移量:0。如何解决?

时间:2011-08-04 15:18:27

标签: php regex preg-match

$from= "You can win $200,000 tonight.";
$output = preg_match("/\$[\d\,]+/", $from, $matches);
echo $matches[0];

这不起作用。它给了我这个错误:

注意:未定义的偏移量:0

我想输出“$ 200,000”。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

尝试

$output = preg_match("/\\$[\d\,]+/", $from, $matches);

你必须使用双\

两次转义$符号

http://ideone.com/digsP

答案 1 :(得分:1)

你用正则表达式的双引号将自己射入膝盖。试试这个:

$from= "You can win $200,000 tonight.";
if(preg_match("/\$[\d\,]+/", $from, $matches)) {
  echo $matches[0];
}

你看,没有比赛。你必须转义两次,一次是字符串,一次是正则表达式引擎:

$from= "You can win $200,000 tonight.";
if(preg_match("/\\\$[\d\,]+/", $from, $matches)) {
  echo $matches[0];
}

HTH,  CK

答案 2 :(得分:0)

逃避$两次。

$output = preg_match("/\\$[\d\,]+/", $from, $matches);