正则表达式:选择除 img 标签之外的所有内容

2024-01-09

我正在尝试使用正则表达式选择一些文本,留下所有文本img标签完好无损。

我发现以下代码选择了所有img tags:

/<img[^>]+>/g

但实际上有这样的文字:

This is an untagged text.
<p>this is my paragraph text</p>
<img src="http://example.com/image.png" alt=""/>
<a href="http://example.com/">this is a link</a>

使用上面的代码将选择 img 标签only

/<img[^>]+>/g #--> using this code will result in:
<img src="http://example.com/image.png" alt=""/>

但我想使用一些正则表达式来选择除图像之外的所有内容,例如:

/magical regex/g # --> results in:
This is an untagged text.
<p>this is my paragraph text</p>
<a href="http://example.com/">this is a link</a>

我还发现了这段代码:

/<(?!img)[^>]+>/g

选择所有tags除了img一。但在某些情况下,我会在标签之间有未标记的文本或文本,因此这不适用于我的情况。 :(

有什么办法可以做到吗? 抱歉,我对正则表达式真的很陌生,所以我真的花了几天的时间试图让它发挥作用,但我做不到。

提前致谢


UPDATE:

好吧,对于那些认为我想解析它的人,抱歉我不想要它,我只想选择文本。

另一件事,我没有使用任何特定的语言,我正在使用雅虎管道 http://pipes.yahoo.com/pipes/它只提供正则表达式和一些字符串工具来完成这项工作。但它不会演化任何编程代码。

为了更好地理解,这里是正则表达式模块在雅虎管道中的工作方式:

http://pipes.yahoo.com/pipes/docs?doc=operators#Regex http://pipes.yahoo.com/pipes/docs?doc=operators#Regex


UPDATE 2

幸运的是,我能够剥离附近的文本img标签,但按照 @Blixt 的建议逐步进行,例如:

<(?!img)[^>]+> , replace with "" #-> strips out every tag that is not img
(?s)^[^<]*(.*), replace with $1  #-> removes all the text before the img tag
(?s)^([^>]+>).*, replace with $1 #-> removed all the text after the img tag

这样做的问题是,它只会捕获第一个 img 标签,然后我必须手动执行此操作并捕获其他硬编码它,所以我仍然不确定这是否是最佳解决方案。


您必须找到图像标签的正则表达式可以与替换一起使用以获得您想要的内容。

假设您使用 PHP:

$htmlWithoutIMG = preg_replace('/<img[^>]+>/g', '', $html);

如果您使用的是 JavaScript:

var htmlWithoutIMG = html.replace(/<img[^>]+>/g, '');

这将获取您的文本,找到<img>标签并用任何内容替换它们,即。它会从文本中删除它们,留下您想要的内容。不记得是否<,>需要逃避。

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

正则表达式:选择除 img 标签之外的所有内容 的相关文章

  • 如何在标签中制作文字自动换行

    我想在其中添加文字 a 标签适合固定的 div 但它会破坏 div 并且显示得很丑 CSS3 有一个属性 word wrap break word 看看MDN 自动换行文档 https developer mozilla org en CS
  • Javascript显示/隐藏div onclick

    我有一个页面 其中包含三个 div 每个 div 是一个段落 我想使用 javascript 在用户从导航栏中按下每个 div 时仅在页面中显示这是导航栏 https i stack imgur com 1LnsS png WebDev 只
  • Mac 上使用 Excel VBA 进行正则表达式

    我需要将 regEx 与 Excel VBA 一起使用 我使用的是 Mac OS 10 10 和 Office 2011 因此没有可以使用的 DLL 文件 这里有什么可做的 我读到我必须绑定一个苹果脚本 这是如何完成的以及该脚本需要什么内容
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • FPDF - 内嵌粗体文本

    我正在尝试从 PHP 创建 PDF 出于法律原因 我们需要将免责声明的一部分设为粗体 并且需要概述免责声明 我当前的代码使用 if isset POST optout POST optout yes pdf gt Ln 5 pdf gt S
  • 使用 jQuery 在元素末尾添加“更多”html?

    我一开始有一个空的 div div div 我知道如何使用 jQuery 第一次将 html 添加到我的空 div 中 mydiv html my html 但我的问题是我不知道如何在非空 div 末尾推送更多 html div my ht
  • PHP 中的正则表达式:找到第一个匹配的字符串

    我想在非常长的文本中找到第一个匹配的字符串 我知道我可以使用 preg grep 并获取返回数组的第一个元素 但是 如果我只需要第一场比赛 或者我知道提前只有一场比赛 那么这样做效率不高 有什么建议吗 预匹配 http www php ne
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 从 firebase 数据库获取最高分值

    在我的网站上有一些我从 firebase 获得的电影 电影的分数在0到100之间 我已经在我的网站上找到了所有电影 我还想按降序显示它们 例如评分最高的 5 部电影 我怎样才能实现这一点 感谢您的回答 const app initializ
  • 使用 jQuery 的 .trigger('dragstart') 实现 HTML5 的拖放功能时如何 .setData/.getData

    当使用 jQuery 的 trigger dragstart 在具有 ondragstart drag event 属性的元素上触发函数时 如何使用 setData getData 实现 HTML5 在触摸设备上的拖放 流程示例 用户通过
  • 使用过渡添加子项时 div 的平滑增长

    尽管使用了以下代码 但其行为并不符合我的预期transition所以可能有些事情我不明白 理想情况下 单击该按钮会将一个子项添加到id2div 并制作id1分区增长smoothly因此 function id1 button click g
  • 如何使单词中的每个字母在悬停时发生变化

    假设我的网站上某个段落中有一个单词 IamGreat 我希望它在悬停时更改为 Good4you 但是 我不想更改整个单词 而是希望每个字母单独更改 因此 如果我将鼠标悬停在字母 I 上 它将变成字母 G 字母 r 将变成数字 4 等 这两个
  • 在java中将DataURL图像转换为图像文件

    我在我的 java servlet 中接收图像 DataURL 它看起来像 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAA 我需要将其另存为图像文件 我该怎么做 The simplest w
  • Jquery 关注下一个带有类的元素

    我正在尝试创建一个函数 当按下 Enter 键时 会选择带有类的下一个输入 我已经设法 focus 同一行中的下一个元素 但是 如果我需要选择下一行的下一个输入 它将无法继续 下一行中的第一个 quantity 文本框需要获得焦点 控制台没
  • 如何创建环境变量来保护我的网站的 Google 地图 API 密钥(或任何其他秘密值)?

    我正在学习使用 Bootstrap 编写自己的网站 并使用 Google 地图 API 密钥和 Google Developers 的脚本轻松地将地图放置在我的页面上 理想情况下 我会有类似的东西 即我已经尝试过这个 Html PHP
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 为什么 "asdf".replace(/.*/g, "x") == "xx" ?

    我偶然发现了一个令人惊讶的 对我来说 事实 console log asdf replace g x Why two替代品 似乎任何没有换行符的非空字符串都会产生此模式的两个替换 使用替换函数 我可以看到第一个替换是整个字符串 第二个替换是
  • 禁用 iframe 中的滚动

    有没有办法在 iframe 中禁用所有滚动 我有一个 iframe 其中内容超出了 iframe 尺寸 设置scrolling no 只会删除滚动条 但不会禁用滚动 我无法控制 iframe html 的头部 所以我无法设计它的样式 有任何
  • HTML标题属性样式[重复]

    这个问题在这里已经有答案了 如何在不使用 javascript 或 CSS 的情况下更改以下标记中标题属性的样式 因为我将 HTML 插入到原本无法编辑的文档中的特定位置 span title This is information Thi
  • HTML:JavaScript:阻止表单提交并调用 Javascript 函数

    我想在按下表单中的提交按钮时进行 AJAX 调用 事实上我无法删除

随机推荐

  • 打印时在 PDF 中插入空白页

    我确信这个问题无处不在 尽管我似乎找不到答案 我希望我的 PDF 文档在 PDF 阅读器中显示时没有空白页 但在封面后打印空白页 这样打印出来的文档右侧奇数页 左侧偶数页 有其他人遇到这个问题和 或找到解决方案吗 您可以使用多价工具 下载多
  • 如何将 Node.js 和 NPM 更新到最新版本?

    我刚刚安装了 Node js 和 NPM 节点包管理器 我安装了 NPM 来访问其他 Node js 模块 安装 Node js 和 NPM 后 我注意到两者都没有可用的最新版本 如何将 Node js NPM 和我的 Node js 模块
  • 错误:实体必须至少有 1 个用 @PrimaryKey 注释的字段

    我是使用房间持久性的新手 每当我尝试运行代码时都会出现此错误 编辑时没有显示错误 但我在 gradle 上遇到构建错误 我不得不复制粘贴代码 但似乎没有一个起作用 这让我很失望 错误如下 error An entity must have
  • NavigationLink 内的 tvOS 按钮不起作用

    我已经使用 swift 和 swiftui 构建了一个 iOS 应用程序 现在我正在开发该应用程序的 tvOS 版本 但是 我有几个问题 其中一个问题仍未解决 tvOS 文本字段透明背景 https stackoverflow com qu
  • 是否可以等到所有 javascript 文件加载完毕后再执行 javascript 代码?

    我们有几个 JavaScript 文件 我们在母版页的底部加载它们 但是 我遇到的情况是 我需要在加载其他脚本之前执行一些 JavaScript 是否可以等到所有 JavaScript 文件加载完毕后再执行一些 JavaScript 代码
  • 从 SCM 检出 Maven 项目 - 无连接器

    我在 Eclipse Indigo 中签出 Maven 项目时遇到问题 我已经安装了 m2e 插件 Subclipse Git 但无法选择合适的 SCM 类型 如何解决这个问题 阿凡是对的 连接器仍然在 Indigo 中 只是隐藏了一点 启
  • MotionLayout:同一视图上的 OnSwipe 和 OnClick

    我正在为我的页面使用 MotionLayout 我有两种状态 可以通过视图的 OnSwipe 进行切换
  • 从 Finalizer 调用托管资源是否安全? (如果我检查空)

    打电话不安全吗 组件 Dispose 如果我检查空 如果我将代码更改为 MyResource Dispose public void Dispose Check to see if Dispose has already been call
  • 错误:服务“xxx”使用未定义的网络“xxx”

    它一直对我说网络是不明确的 错误 服务frontend network使用未定义的网络frontend network 然而 我看到已经有这样一个网络 docker网络ls 我错过了什么 我需要你的帮助 我在谷歌上读了很多相关内容 但找不到
  • Google表格查询非连续范围

    是否可以编写一个引用非相邻 不连续 不连续 我不知道正确的短语 范围的查询 在公式内 例如 query A2 C E2 F 选择 Col2 其中 Col5 3 我希望能够将查询放在 D 列中 因此我想分割它周围的范围 如果我只是说 Quer
  • 在Python中迭代多个列表中值的所有组合[重复]

    这个问题在这里已经有答案了 给定多个可能不同长度的列表 我想迭代所有值的组合 每个列表中的一项 例如 first 1 5 8 second 0 5 4 然后我希望的输出是 combined 1 0 5 1 4 5 0 5 5 4 8 0 5
  • Dapper:单元测试 SQL 查询

    我从 Dapper 微型 ORM 开始 我使用 Dapper Rainbow 我想测试查询和它们检索的数据 我的意思是 例如 我有用户服务用方法GetAll 并且我想测试 sql 查询是否从某个列表中检索所有用户 不是从数据库中检索 因为我
  • 对象传播与 Object.assign

    假设我有一个options变量 我想设置一些默认值 这两种选择的优点 缺点是什么 使用对象传播 options optionsDefault options 或者使用 Object assign options Object assign
  • Android 中的捕获按钮释放

    是否可以像我们捕获单击一样捕获按钮的释放onClickListener and OnClick 我想在按下按钮时增加按钮的大小 并在释放单击时将其移回原始大小 谁能帮我怎么做 您应该在按钮上设置一个 OnTouchListener butt
  • 显示另一个 DialogFragment 中的 DialogFragment

    我有一个DialogFragment向用户显示选项列表 其中一个选项是 删除 选项 当用户按下删除选项时 我想显示另一个 DialogFragment 作为确认 不幸的是 确认对话框不显示 这是我的代码 第一个片段代码 public cla
  • 使用 Microsoft Graph 客户端库访问 user.MemberOf

    Note 我最初提出这个问题 https github com microsoftgraph msgraph sdk dotnet issues 66在客户端库存储库中 他们回复说这是服务库中的问题 而不是 NET 库中的问题 在开发过程中
  • Ruby on Rails:“无法加载此类文件”eventmachine

    我正在尝试在我的 Windows 计算机上运行 RoR 应用程序 我在配置所有内容方面取得了很大进展 但我被困在这里 当我尝试运行 rake 时 出现以下错误 C inetpub wwwroot voterApp gt rails serv
  • 使用 C# 进行调查的进度条[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我使用 C 在 ASP NET 中做
  • Node.js 卷曲与 http.request

    我需要向另一台服务器发送 http 请求 我可以通过两种方式做到这一点 1 使用http request 2 使用child process exec define timeout data url var exec require chi
  • 正则表达式:选择除 img 标签之外的所有内容

    我正在尝试使用正则表达式选择一些文本 留下所有文本img标签完好无损 我发现以下代码选择了所有img tags