Regex PHP-正则表达式停止在&;nbsp&引用;

Regex PHP-正则表达式停止在&;nbsp&引用;,regex,Regex,我正在使用正则表达式将HTML转换为BBCODE。但是,由于来自farmer WYSIWYG编辑器(TinyMce)的代码,我遇到了一些问题。这是一个非常奇怪的情况: 有一些典型的空白药典,,但我无法以任何方式匹配它们。以下regexp中没有一个正在工作: str_replace("<p>&nbsp;</p>",........) str_replace("<p> </p>".........) preg_replace("#<p&g

我正在使用正则表达式将HTML转换为BBCODE。但是,由于来自farmer WYSIWYG编辑器(TinyMce)的代码,我遇到了一些问题。这是一个非常奇怪的情况:

有一些典型的空白药典,

,但我无法以任何方式匹配它们。以下regexp中没有一个正在工作:

str_replace("<p>&nbsp;</p>",........)
str_replace("<p> </p>".........)
preg_replace("#<p>.?</p>#"....)
str\u替换(“

”,…) str_替换(“

”……) preg#u replace(“#?

#…”)
这确实有效,但如果“空格”在其他地方,我如何匹配它们呢?

preg_replace("#<p>.{1,6}</p>#"....)
preg#u replace(“#{1,6}

#…”)

我怎样才能让它匹配所有的
,即使它们没有被写入(在BD中,原始字符串被存储,
没有被写入,只有

块),这很奇怪…

我建议您阅读

脚本:



注意:要匹配任何单个unicode图形,请使用模式
\p{M}\p{M}*+

,我建议您阅读

脚本:


注意:要匹配任何单个unicode图形,请使用模式
\p{M}\p{M}*+

使用此正则表达式时,我遇到了类似的问题(PHP进程停止):

([\r\n\t]|\xC2\xA0|)+

匹配空格(我的目的是:用单个
'
替换任何类型的空格)。我的测试字符串包含大量HTML标记

这是我的解决方案:

$text=str_replace(数组('\xC2\xA0',''),'''$text);
$text=preg_replace(“/[\n\r\t]+/”,“”,$text)

希望它能帮助别人。

当使用此正则表达式时,我遇到了类似的问题(PHP进程停止)

([\r\n\t]|\xC2\xA0|)+

匹配空格(我的目的是:用单个
'
替换任何类型的空格)。我的测试字符串包含大量HTML标记

这是我的解决方案:

$text=str_replace(数组('\xC2\xA0',''),'''$text);
$text=preg_replace(“/[\n\r\t]+/”,“”,$text)


希望它能帮助别人。

堆栈溢出不是交互式调试会话。堆栈溢出不是交互式调试会话。
$string = '123<p>  &nbsp;  &nbsp;  </p>abc';
$pattern = '/<p>(&nbsp;|[\s\p{Z}\p{C}\x85\xA0\x{0085}\x{00A0}\x{FFFD}]+)*<\/p>/iu'; 
$replacement = ''; 
echo preg_replace($pattern, $replacement, $string); 
123abc