preg_match_all导致“未知修饰符'*'”

时间:2013-09-30 23:55:15

标签: php regex screen-scraping

我正在尝试编写一个正则表达式来从HTML表中提取名称,其中的名称按以下格式编写:“Smith,Bob”

我正在使用的正则表达式为:[a-zA-Z]*,\s[a-zA-Z]*

我在执行代码时遇到以下错误消息(在第二个preg_match_all行中):未知修饰符'*'

我已将*更改为+,仅用于相同的错误提示。我的代码如下:

$start = strpos($content,'<table cellspacing="0" cellpadding="2" rules="all" border="1"             id="gvChart"'); 
$end = strpos($content,'</table>',$start) + 8;
$table = substr($content,$start,$end-$start);

/* Regex */
preg_match_all("|<tr(.*)</tr>|U",$table,$player);
foreach ($player as $val) {
preg_match_all("[a-zA-Z]*,\s[a-zA-Z]*", $table, $name);
echo $name[0];
}

这里非常感谢所有帮助,谢谢:)

1 个答案:

答案 0 :(得分:1)

你必须在你的函数中使用分隔符...尝试:

preg_match_all("/[a-zA-Z]*,\s[a-zA-Z]*/", $table, $name);

甚至:

preg_match_all("/[A-Z]*,\s[A-Z]*/i", $table, $name);