Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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正则表达式将空格替换为&;nbsp;如果它跟随单个字母,但不破坏html标记_Php_Regex_Replace_Preg Replace - Fatal编程技术网

PHP正则表达式将空格替换为&;nbsp;如果它跟随单个字母,但不破坏html标记

PHP正则表达式将空格替换为&;nbsp;如果它跟随单个字母,但不破坏html标记,php,regex,replace,preg-replace,Php,Regex,Replace,Preg Replace,我找到了 进入 不幸的是,如果html标记出现在内容中,它也会破坏它们 "hello, this is a <a href="example.com">beautiful day</a>" “你好,这是一个” 最终成为 "hello, this is a&nbsp;<a&nbsp;href="example.com">beautiful day</a>" “你好,这是一个” 我怎样才能把这个句子正则化为 "hello, th

我找到了

进入

不幸的是,如果html标记出现在内容中,它也会破坏它们

"hello, this is a <a href="example.com">beautiful day</a>"
“你好,这是一个”
最终成为

"hello, this is a&nbsp;<a&nbsp;href="example.com">beautiful day</a>"
“你好,这是一个”
我怎样才能把这个句子正则化为

"hello, this is a&nbsp;<a href="example.com">beautiful day</a>"
“你好,这是一个”
我还必须处理一些拉丁扩展字符,所以要修复的示例文本是

Dziedziczenie dlugów spadkowych jest wciąż bardzo żywym tematem, pomimo korzystnej dla spadkobierców zmiany przepisów w 2015 roku, o której szerzej pisałem na blogu <a href="http://www.prawnik-katowice.pl/blog-prawniczy/dziedziczenie-dlugow-od-18-pazdziernika-2015-roku/">tutaj</a>.
Dziedziczenie dlugów spadkowych与wciąbardzożywym tematem开玩笑,pomimo korzystnej DlaSpadkobierców zmiany przepisów 2015 roku,o ktèrej szerzej pisałem na blogu。
正则表达式:

(?i)<\/?\w+[^>]*>(*SKIP)(?!)|\b(\p{Latin})\s

使用DOMDocument和DOMXPath并替换每个textNode。使用此选项,谢谢您的帮助。它可以很好地处理英文文本,但我正在处理的项目涉及一些拉丁扩展字符,这个正则表达式也匹配它们。我已经用示例文本更新了主要帖子。谢谢更新版本。我在你的例子中看到了它的作用。我自己也试过,我不知道为什么它对我不起作用。你能查一下吗?不客气。如果答案解决了您的问题,请随意将其标记为已接受(),如果有帮助,请向上投票。
"hello, this is a&nbsp;<a href="example.com">beautiful day</a>"
Dziedziczenie dlugów spadkowych jest wciąż bardzo żywym tematem, pomimo korzystnej dla spadkobierców zmiany przepisów w 2015 roku, o której szerzej pisałem na blogu <a href="http://www.prawnik-katowice.pl/blog-prawniczy/dziedziczenie-dlugow-od-18-pazdziernika-2015-roku/">tutaj</a>.
(?i)<\/?\w+[^>]*>(*SKIP)(?!)|\b(\p{Latin})\s
preg_replace('~</?\w+[^>]*>(*SKIP)(?!)|\b(\p{Latin})\s~iu', '\\1&nbsp;', $str);
 (?i)               # Set case-insensitive flag
 <\/? \w+ [^>]* >   # Match opening / closing HTML tags 
 (*SKIP)(?!)        # Throw them away
 |                  # Or
 \b                 # Match a word-boundary position
 ( \p{Latin} )      # Capture a letter
 \s                 # Match a whitespace