M a*_*a D 1 php regex string replace html-parsing
我需要0,1,2,...,9用\xD9\xA0,\xD9\xA1,\xD9\xA2,...,\xD9\xA9字符串替换字符。该字符串来自CKEditor,因此它可能包含html标记。使用以下代码
$body = str_replace("1", "\xD9\xA1", $body);
Run Code Online (Sandbox Code Playgroud)
它用替换所有内容1,\xD9\xA1从而影响标签<h1>,<table border="1">同时我只需要替换正文中的数字而不是标签。
包含数字的标签是表标签的<h0><h1><h2><h3><h4><h5><h6>和cellspacing和cellpadding和border。
在不影响<h0><h1><h2><h3><h4><h5><h6>and cellspacing和cellpaddingand的情况下,border如何用上述符号替换数字?
您不应该使用正则表达式来处理html,但是,如果您仍然想使用正则表达式,则可以使用带有正则表达式的丢弃模式,如下所示:
<.*?>(*SKIP)(*FAIL)|1
Run Code Online (Sandbox Code Playgroud)
该正则表达式的想法是跳过其中的任何内容,<...>但将其余部分匹配。因此,它将仅匹配1不在html标记内的数字。再一次,我将使用html解析器代替。
邮递区号
$re = "/<.*?>(*SKIP)(*FAIL)|1/";
$str = "<h0><h1><h2><h3>\n<table border=\"1\">\n1\n";
$subst = "\xD9\xA1";
$result = preg_replace($re, $subst, $str);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
688 次 |
| 最近记录: |