我无法使以下正则表达式正常工作:
preg_match('Currently: ([0-9\.km,]+)', $data, $matches)
$ data中的信息是:'目前是什么:52,523'(以及大约30行的HTML)。
我一直收到以下错误:Warning: preg_match(): Delimiter must not be alphanumeric or backslash in C:\xampp\htdocs\test\test.php on line 49
注意:第49行包含我在上面发布的preg_match。
编辑:道歉,我忘了添加匹配参数。
答案 0 :(得分:5)
preg_match function需要您的模式中的分隔符。
preg_match('/Currently: ([0-9\.km,]+)/', $data, $matches)
编辑:
如评论中所述
@JoséRobertoAraújoJúnior
中使用这些数据curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
如果这就是你的意思,是的,我已经设定了它。如果我是echo $data
,那就是 显示网页,这意味着它仍然包含所有的HTML 标签..我不知道该怎么做,在我的preg _
然后$data
可能在Currently:
和(...)
之间包含空格,因此应在您的模式中考虑添加\s+
而不是正常白色-space,\s
将匹配PCRE regex syntax documentation page中描述的任何空格字符。
preg_match('/Currently:\s+([0-9\.km,]+)/', $data, $matches)
答案 1 :(得分:1)
你需要在模式的开头和结尾添加相同的字符:
preg_match('/Currently: ([0-9\.km,]+)/', $data)
除非您将其转义,否则此字符不会出现在模式中,例如:
preg_match('/<example><\/example>/', $xml)
您可以使用其他字符作为分隔符,/
旁边最常用的字符之一是#
答案 2 :(得分:1)
你必须像这样使用分隔符编辑
$data = 'What it is Currently: 52,523';
preg_match('&Currently: ([0-9\.km,]+)&', $data, $match);
print_r($match);