我正在尝试使用preg_match从某些html中提取一些数据。我想从Ajax调用的以下行获取数字
new Ajax.Request('/selectdata/new/get_ids?id=687420'
所以,我使用了以下PHP
preg_match('new Ajax.Request\(\'/selectdata/new/get_ids\?id=(.+?)\'', $buffer, $matches)
我收到消息“preg_match():分隔符不能是字母数字或反斜杠”
我尝试了很多变化,但没有成功。
答案 0 :(得分:6)
第一个参数中的第一个字符必须是分隔符。因为它是“n”,preg_match认为你正试图用'n'分隔的正则表达式。
添加管道,获得成功:
preg_match('|new Ajax.Request\\(\'/selectdata/new/get_ids\\?id=(.+?)\'|', $buffer, $matches)
测试:
$ php --interactive
php > $a = "new Ajax.Request('/selectdata/new/get_ids?id=687420'";
php > preg_match('|new Ajax.Request\\(\'/selectdata/new/get_ids\\?id=(.+?)\'|', $a, $matches);
php > var_dump($matches);
array(2) {
[0]=>
string(52) "new Ajax.Request('/selectdata/new/get_ids?id=687420'"
[1]=>
string(6) "687420"
}