拆分 html 代码标签和内容

2024-01-11

有没有比我对正则表达式了解更多的人知道如何拆分 html 代码,以便将所有标签和所有单词分开,即。

<p>Some content <a href="www.test.com">A link</a></p>

是这样分开的:

array = { [0]=>"<p>",
          [1]=>"Some",
          [2]=>"content",
          [3]=>"<a href='www.test.com'>,
          [4]=>"A",
          [5]=>"Link",
          [6]=>"</a>",
          [7]=>"</p>"

到目前为止,我一直在使用 preg_split ,并且成功地设法按空格分割字符串或按标签分割字符串 - 但当我需要将其分割到时,所有内容都在一个数组元素中。

有人帮我吗?


在这种情况下不应使用 preg_split。尝试 preg_match_all:

$text = '<p>Some content <a href="www.test.com">A link</a></p>';
preg_match_all('/<[^>]++>|[^<>\s]++/', $text, $tokens);
print_r($tokens);

output:

Array
(
    [0] => Array
        (
            [0] => <p>
            [1] => Some
            [2] => content
            [3] => <a href="www.test.com">
            [4] => A
            [5] => link
            [6] => </a>
            [7] => </p>
        )

)

我假设你忘记包括'A' in 'A link'在你的例子中。

意识到当你的 HTML 包含 并不意味着作为标签的开始或结束时,正则表达式会把事情搞得一团糟! (因此出现警告)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

拆分 html 代码标签和内容 的相关文章

  • 使用php将cmyk转rgb

    我正在使用以下脚本将图像保存在文件夹中 但有一张图像显示此消息 图像无法显示 因为它包含错误 我认为问题出在图像上称为 cmyk 和 rgb 的东西 但是当在网上搜索使用 php 将 cmyk 转换为 rgb 的方法时 我找不到如何执行此操
  • 如何在 Slim Framework 3 上创建中间件?

    我阅读了文档here https www slimframework com docs concepts middleware html关于创建中间件 但我必须创建哪个文件夹或文件 文档不包含此信息 在 src 文件夹下我有middlewa
  • 对于每个...休息

    每次我 打破 for each 结构 PHP Javascript 时 我都感觉很脏 所以像这样 JavaScript 示例 for object in objectList if object test true do some proc
  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • 从字符串中提取整数并将它们添加到Java中[重复]

    这个问题在这里已经有答案了 我想从字符串中提取整数并将它们相加 Ex String s ab34yuj789km2 我应该从中得到整数的输出 825 即 34 789 2 825 这是一种方法 使用 String split public
  • 未调用 Ajax 回调。如何解决这个问题?

    我再次来这里寻求您的建议 我有一些 AJAX 调用 用于从我的编辑器 PHP 在线编辑器 运行代码 大家可以来看看my site http web guru99 com 我有一些 ajax 调用来发送编辑器的数据并接收输出 问题 for 循
  • 通过CompilerPass注册自定义AttributeBag

    我正在尝试通过将自定义 AttributBags 集成到会话中来整理我的会话变量 在 Symfony 查看相关问题 如何向 symfony 会话添加额外的包 https stackoverflow com questions 4472361
  • Laravel 保存文件将其发布为 bin 文件

    我试图在 laravel 中保存文件 但它最终被保存为 bin 文件 file request gt file file name Carbon now gt format Y m d strtotime Carbon now file g
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • php 无法连接到 mysql,错误为 13(但命令行可以)

    我在新安装的服务器中遇到了奇怪的情况 谷歌这次似乎无法帮助我 我无法从我的 php 代码连接到 远程 mysql 当我尝试从同一服务器上的命令行连接时 连接成功 无法连接 无法连接到 MYSQL SERVER 上的 MySQL 服务器 13
  • str_getcsv到php中的多维数组

    我有这样的 csv 值 csv data test this thing hi there this is cool dude have fun 我想获取整个 CSV 字符串并将其读入多维数组 以便得到 array array test g
  • Pandas系列矢量化文本处理

    我想使用矢量化操作改进我的 Pandas 代码 假设我有一个简单的 DataFrame 其中有一个文本列 其中可能包含 url Column1 0 hello http www google com 1 bye www mail com w
  • 无法创建可锁定文件 - Laravel 8 和 PHP 8

    我被困在 Laravel 项目中 我已经使用 Laravel 很多年了 但从未发生过这种情况 我正在使用 Vagrant 一如既往 并且只在 PHP 8 中发生这种情况 使用 php 7 X 的其他项目不会发生这种情况 USER 和 GRO
  • CakePHP 与 Bootstrap(来自 Twitter)

    我是 CakePHP 的新手 我想知道一种在与蛋糕结合的布局中使用 Twitter 的 Bootstrap 的方法 我主要关心的是让 Form Helper 继续正常运行 因为我认为它使用预先配置的 CSS 类 如果我更改默认的 css 我
  • 在 PHP 中搜索多维数组中的值并获取其路径

    这是我的数组 array array 1 gt array title gt Level1 nodes gt array 11 gt array title gt sub1 company1 12 gt array title gt sub
  • PHP - 获取类公共变量?

    请考虑下面的代码 class A public function construct class B extends A public a a public b b public c c 如何从父类中获取 B 类的公共变量而不确切知道它们是
  • PHP 中二进制的前缀是什么?

    两者都不是0x nor 0 它是什么 有没有 从 PHP 5 4 开始 二进制数的前缀是 0b For ealier version there is no such prefix Instead you can use 0x for he
  • 正则表达式(第一个字符匹配 a-z)

    我有这个正则表达式 a zA Z0 9 上面我想补充的是 第一个字符只能是a zA Z 我怎样才能制作这个正则表达式 尝试这样的事情 a zA Z a zA Z0 9 解释 Start of line string a zA Z Chara
  • WordPress:wpdb->插入与wpdb->准备(wpdb->查询(“INSERT

    我想知道 WordPress 的插入功能是否也向数据添加斜杠 如果没有 准备查询方法似乎可以更好地防止 SQL 注入 我尝试在 codex api 中查找问题 然而 它似乎没有记录 谢谢 这个问题有点老了 自从提出这个问题以来 法典可能已经

随机推荐

  • 画布中的 Tkinter 窗口未填充其父窗口的高度

    我希望我的滚动条位于框架底部 并且我的文本小部件填充滚动条上方的整个框架 我找到了一些关于宽度配置的解决方案here https stackoverflow com questions 29319445 tkinter how to get
  • 在 ios 上通过 Twilio 发送短信?

    我怎么能够通过 twilio 发送短信 https www twilio com docs api rest 我已经尝试过并正在执行以下操作 IBAction sendButtonPressed id sender NSLog Sendin
  • 间歇性 java.io.IOException:来自 Amazon EC2 内部的 jdk.internal.net.http.HttpClientImpl.send 中的连接重置(不是对等方重置的连接)

    在 Amazon EC2 中使用 openjdk 14 0 1 我遇到间歇性问题java io IOException Connection reset当通过 https 使用 POST 请求访问外部 REST 服务时 在 EC2 之外不会
  • 在运行时添加 WPF 控件

    我编写了一个 WPF UserControl 并希望在运行时单击按钮时将其中一个或多个添加到我的窗口中 我怎样才能做到这一点 编辑 进一步规范 我想将用户控件添加到画布中 并放置在绝对位置 画布是我房子里的地板图 每个用户控件都有属性来指示
  • Fabricjs删除backgroundImage

    是否可以删除背景图像fabric Canvas设置后 canvas setBackgroundImage img url function canvas renderAll 或者只是回到标准背景 要设置backgroundColor to
  • Kotlin 中 lambda 表达式的默认参数

    我想创建一个 lambda 并将其分配给一个变量 并且以下内容按预期工作 val rollDice min Int max Int gt min max random 但是 当我尝试为参数分配默认值时 出现错误 val rollDice m
  • Android应用程序生命周期和静态的使用

    对于 Android 来说 这是正确的代码吗 调用 init 来自MyApplication onCreate public class Connectivity static ConnectivityManager cm public s
  • 在 Python 中实现 __concat__

    我尝试实施 concat 但没有成功 gt gt gt class lHolder def init self l self l l def concat self l2 return self l l2 def iter self ret
  • Java 中已弃用的 JDBC 日期(java.sql 包)

    我正在使用 JDBC 和 MySQL 我有一个日期列 需要将其包含在结果集中 不幸的是 我找不到 Java 中的类来检索日期 SQL Date 类已弃用 如何从结果集中获取 Date 对象 You use java sql 日期 http
  • 基于图的数据库 (http://neo4j.org/) 有哪些用例? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Laravel:如何检查 Redis 可用性?

    我如何检查Redis连接的可用性拉拉维尔 5 4 我尝试了下面的代码 但 ping 线路出现异常 如果 Redis 未连接 我该怎么办而不是做其他事情以避免异常 由于目标机器主动连接 无法建立连接 拒绝了 tcp 127 0 0 1 637
  • 询问用户 SIM 卡 PIN 码

    我搜索了与此类似的问题 但没有运气 我正在编写一个应用程序 为了正确验证用户身份 它应该要求他输入正确的 SIM 卡 是否有可能 或者我是否必须使用另一个 PIN 码才能进行应用程序身份验证 我不确定这是否可行 但由于有些设备没有 SIM
  • 在 IntelliJ 中生成文件时关闭“创建者”标记

    我找不到这个选项 例如 当我创建一个新的 Scala 类时 以下文本将放置在文件中 Created by ben on 6 23 14 In IntelliJ 13 and above it is in the File and Code
  • 布尔系统(适用于 C++/C#/java)

    我如何以编程方式解决此类系统 A B B C D B E A E B 所以我可以通过替换A C D 3 and E B 2 我只需要2组的数量 如果无法获得 2 个组 我会显示一条错误消息 万一 这不是作为一个骗局而关闭 从我的answer
  • GuiceApplicationLoader配置错误

    因此 我尝试使用如下所示的方法来实现编译时 DI package modules class MyModule extends AbstractModule def configure bind classOf MyT to classOf
  • Django NoReverseMatch

    我正在 django 1 6 和 python 2 7 中制作一个简单的登录应用程序 并且在开始时出现错误 该错误不允许我继续 这是网站的 url py from django conf urls import patterns inclu
  • docker run 的命令行参数

    我正在尝试慢慢构建一个 docker 镜像来满足我们的需求 我想做的是运行具有单声道的基本映像 然后让单声道在后台运行可执行文件 从普通的命令行 如果不尝试在容器中运行它 它看起来像 usr local bin mono home crys
  • 在 codeigniter 中删除后从文件夹中删除图像

    我不仅想删除数据库中的图像 还想删除文件夹中的图像 这是我的模型 public function delete id if this gt db gt delete np gallery id id return true 这是我的控制器
  • 在特定时间在 qglwidget 上绘制一个矩形

    我在 ubuntu 16 04 上使用 Qt 5 7 和 c 我正在尝试实现一个继承 qglwidget 的类 它以给定的速率 3 10 Hz 将图像渲染到屏幕上 除此之外 我想在屏幕上的某处绘制一个小矩形 将其颜色从黑色更改为白色 反之亦
  • 拆分 html 代码标签和内容

    有没有比我对正则表达式了解更多的人知道如何拆分 html 代码 以便将所有标签和所有单词分开 即 p Some content a href www test com A link a p 是这样分开的 array 0 gt p 1 gt