Pro*_*o85 6 html php spaces preg-replace
我需要用 内部HTML元素替换空格.例:
<table atrr="zxzx"><tr>
<td>adfa a adfadfaf></td><td><br /> dfa dfa</td>
</tr></table>
Run Code Online (Sandbox Code Playgroud)
应该成为
<table atrr="zxzx"><tr>
<td>adfa a adfadfaf></td><td><br /> dfa dfa</td>
</tr></table>
Run Code Online (Sandbox Code Playgroud)
如果你正在使用php,你可以这样做
$content = str_replace(' ', ' ', $content);
Run Code Online (Sandbox Code Playgroud)
使用正则表达式捕获标签之间的数据
(?:<\/?\w+)(?:\s+\w+(?:\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+)?)+\s*|\s*)\/?>([^<]*)?
Run Code Online (Sandbox Code Playgroud)
然后替换' '为' '
还可以捕获 html 之前和之后:
^([^<>]*)<?
>([^<>]*)$
Run Code Online (Sandbox Code Playgroud)
编辑:给你......
<?php
$data="dasdad asd a <table atrr=\"zxzx\"><tr><td>adfa a adfadfaf></td><td><br /> dfa dfa</td></tr></table> asdasd s ";
$exp="/((?:<\\/?\\w+)(?:\\s+\\w+(?:\\s*=\\s*(?:\\\".*?\\\"|'.*?'|[^'\\\">\\s]+)?)+\\s*|\\s*)\\/?>)([^<]*)?/";
$ex1="/^([^<>]*)(<?)/i";
$ex2="/(>)([^<>]*)$/i";
$data = preg_replace_callback($exp, function ($matches) {
return $matches[1] . str_replace(" ", " ", $matches[2]);
}, $data);
$data = preg_replace_callback($ex1, function ($matches) {
return str_replace(" ", " ", $matches[1]) . $matches[2];
}, $data);
$data = preg_replace_callback($ex2, function ($matches) {
return $matches[1] . str_replace(" ", " ", $matches[2]);
}, $data);
echo $data;
?>
Run Code Online (Sandbox Code Playgroud)
它可以工作......稍微修改一下,但无需修改即可工作(但我认为你不会理解代码;))