正则表达式:如果内部没有数据,则将<div>标记的内容替换为<br>标记

拉姆·戈尔

代码:

    <div>
      <font face="Arial, Verdana">
         <span style="font-size: 13.3333px;">
           <u>
             Hello World
           </u>
       </span>
    </font>
 </div>
    <div>
      <font face="Arial, Verdana">
         <span style="font-size: 13.3333px;">
           <u>
            Hello World2
           </u>
            <br>
       </span>
    </font>
 </div>
 <div>
    <br>
 </div>
 <div>
      <font face="Arial, Verdana">
        <span style="font-size: 13.3333px;">
           <u>
               <br>
            </u>
        </span>
      </font>
 </div>

输出:-我希望得到与下面给出的完全相同的输出

    <div>
      <font face="Arial, Verdana">
         <span style="font-size: 13.3333px;">
            <u>
             Hello World
            </u>
          </span>
       </font>
     </div>
    <div>
      <font face="Arial, Verdana">
         <span style="font-size: 13.3333px;">
           <u>
            Hello World2
           </u>
            <br>
       </span>
    </font>
 </div>
 <br>
 <br>

这是我尝试过的:

$html = preg_replace("/<div.*?>.*?<br.*?>.*?<\/div>/", "", $html);

但效果不佳。

请看一下代码,并向我提出建议,仅当“ div”标签下没有文字时,才能使用“ br”标签将“ div”标签从其开头替换为相应的结束标签。如上图所示,在第二个“ div”标签中。

内特一世

我强烈建议使用DOM操作来完成此任务。可以使用正则表达式,也可以使其他解决方案起作用。但是,正是出于这个原因创建了DOM操作。

PHP中有许多DOM解析器的示例。有些比其他的慢。查看此SO帖子,以获取有关DOM解析器的潜在候选人的详细列表。

您可以始终使用正则表达式-但是在这种情况下,我个人将使用正则表达式:如果您从不打算为此添加任何其他功能如果您确实打算添加更多内容,对其进行更改,使您的脚本更具通用性等,那么我会说不要使用RegEx。原因是您要么得到一个巨大的,完全令人生畏的表达式,要么得到许多小的“一次性”表达式。与找出正确的正则表达式相比,在DOM分析器中引用函数所需的时间更少。

编辑:

我删除了我的代码片段-Splash58的答案是一个更优雅的解决方案。他的示例使用本机PHP,它的9.9更好,是9.9倍(更快,更有效,社区支持更多)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式,替换标记内的空格

来自分类Dev

用<br>标记替换\ n

来自分类Dev

正则表达式将<div>转换为<br>

来自分类Dev

正则表达式替换php中开始和结束标记之外的所有内容

来自分类Dev

正则表达式删除除<br>以外的所有html标记

来自分类Dev

正则表达式在<div class =“ customclass”>和</ div>标记之间查找并替换

来自分类Dev

删除带有条件的<br>标记的多个实例

来自分类Dev

从<pre> </ pre>标记内部删除<br />

来自分类Dev

Visual Studio使用正则表达式在html标记之间查找和替换内容

来自分类Dev

没有<br>标记的新行

来自分类Dev

用正则表达式匹配尾随<br>标记

来自分类Dev

使用硒提取<br>标记之前和之后的数据

来自分类Dev

将所有<br>标记替换为javascript中的空格

来自分类Dev

自动将HTML标记替换为“ <br>”

来自分类Dev

如何从mysql数据中删除除<br>之外的HTML标记?

来自分类Dev

<br/>标记后有一些空白

来自分类Dev

如何不标记<br>

来自分类Dev

正则表达式替换php中开始和结束标记之外的所有内容

来自分类Dev

正则表达式在内容具有特定文本的标记之间匹配内容

来自分类Dev

正则表达式在<div class =“ customclass”>和</ div>标记之间查找和替换

来自分类Dev

jQuery的:$(this).next()。focus(); 如果<input>标记后跟<td>或<br>标记,则将不起作用

来自分类Dev

如果组包含换行标记,则正则表达式替换不起作用

来自分类Dev

带有正则表达式的标记中没有唯一的HTML属性

来自分类Dev

标记化正则表达式

来自分类Dev

Xpath在2个<br>标记之前获取数据

来自分类Dev

在<br>标记后使用simplehtmldom刮除不带div的数据

来自分类Dev

PHP Regex-删除所有<br>标记

来自分类Dev

正则表达式:选择包含该单词的特定html标记,该标记后面没有任何内容

来自分类Dev

正则表达式:将一个html标记的内容替换为另一个html标记的内容后,将逗号置于其位置

Related 相关文章

  1. 1

    正则表达式,替换标记内的空格

  2. 2

    用<br>标记替换\ n

  3. 3

    正则表达式将<div>转换为<br>

  4. 4

    正则表达式替换php中开始和结束标记之外的所有内容

  5. 5

    正则表达式删除除<br>以外的所有html标记

  6. 6

    正则表达式在<div class =“ customclass”>和</ div>标记之间查找并替换

  7. 7

    删除带有条件的<br>标记的多个实例

  8. 8

    从<pre> </ pre>标记内部删除<br />

  9. 9

    Visual Studio使用正则表达式在html标记之间查找和替换内容

  10. 10

    没有<br>标记的新行

  11. 11

    用正则表达式匹配尾随<br>标记

  12. 12

    使用硒提取<br>标记之前和之后的数据

  13. 13

    将所有<br>标记替换为javascript中的空格

  14. 14

    自动将HTML标记替换为“ <br>”

  15. 15

    如何从mysql数据中删除除<br>之外的HTML标记?

  16. 16

    <br/>标记后有一些空白

  17. 17

    如何不标记<br>

  18. 18

    正则表达式替换php中开始和结束标记之外的所有内容

  19. 19

    正则表达式在内容具有特定文本的标记之间匹配内容

  20. 20

    正则表达式在<div class =“ customclass”>和</ div>标记之间查找和替换

  21. 21

    jQuery的:$(this).next()。focus(); 如果<input>标记后跟<td>或<br>标记,则将不起作用

  22. 22

    如果组包含换行标记,则正则表达式替换不起作用

  23. 23

    带有正则表达式的标记中没有唯一的HTML属性

  24. 24

    标记化正则表达式

  25. 25

    Xpath在2个<br>标记之前获取数据

  26. 26

    在<br>标记后使用simplehtmldom刮除不带div的数据

  27. 27

    PHP Regex-删除所有<br>标记

  28. 28

    正则表达式:选择包含该单词的特定html标记,该标记后面没有任何内容

  29. 29

    正则表达式:将一个html标记的内容替换为另一个html标记的内容后,将逗号置于其位置

热门标签

归档