Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP正则表达式:匹配不以HTML标记开头的行?_Php_Html_Regex - Fatal编程技术网

PHP正则表达式:匹配不以HTML标记开头的行?

PHP正则表达式:匹配不以HTML标记开头的行?,php,html,regex,Php,Html,Regex,这个问题似乎很简单,但我在网上找不到一个例子 我正在尝试创建一个preg_replace,它一次取一行,如果没有以HTML字符开头,则在其周围放置标记 比如说,, 此段落变为此段落 当 此内容保持不变,周围没有标签 实现这一点的最简单方法是什么?您可以在^行起始标记后尝试(?!…): $text = preg_replace('#^(?!<[a-z]).*$#m', '<p>$0</p>', $text); $text=preg_replace('#^(?!有什么

这个问题似乎很简单,但我在网上找不到一个例子

我正在尝试创建一个preg_replace,它一次取一行,如果没有以HTML字符开头,则在其周围放置
标记

比如说,, 此段落变为
此段落

此内容保持不变,周围没有
标签

实现这一点的最简单方法是什么?

您可以在
^
行起始标记后尝试
(?!…)

$text = preg_replace('#^(?!<[a-z]).*$#m', '<p>$0</p>', $text);

$text=preg_replace('#^(?!有什么理由更喜欢
^(?!不,这对于这个简单的任务来说也是一个选项。断言检查两个前导字符,所以更具体一点。但这只是两种情况下的最佳猜测方法。这就是我缺少的术语,“否定断言”…我不知道该怎么说:匹配一行不是以某个字符开头的…谢谢你的帮助