问题:

$str = "<h1>this is test msg</h1>";
$ruler = "/^<h1>(.*?)</h1>$/";
$res = preg_match($ruler,$str,$v);
var_dump($v);

报错:
warning: preg_match(): unknown modifier 'h' in /usr/local/var/www/test.php on line 36
null

为什么会报错呢?原因就在于我的定界符。

在正则规则中用的是/做的定界符,而在</h1>中也有/,所以会报这样的错误。

解决方法:

1.将</h1>中的/转义一下,改成<\/h1>就ok了,

$ruler = "/^<h1>(.*?)<\/h1>$/";

2.换别的定界符。