preg_replace 排除 PHP

2023-12-06

我使用 preg_replace 用 href 标签替换文本中的关键字,我的正则表达式运行得很好,现在我的代码是:

$newstring2 = preg_replace("/\p{L}*?".preg_quote($match[$i])."\p{L}*/ui", "<a href='".$url."' class='link'>$0</a>", $newstring);

唯一的问题是,我需要排除里面的任何关键字<a href='https://keyword.cz' title="keyword">keyword</a>

这就是我发现的https://stackoverflow.com/a/22821650/4928816

那么有人可以帮助我将这两个正则表达式合并在一起吗?

Example:

$text = 'this is sample text about something what is text.'
$keyword = 'text'

现在感谢我的正则表达式我得到:

$text= 'this is sample <a href='somelink.php'>text</a> about something what is <a href='somelink.php'>text</a>.'

但如果文本是:

$text= 'this is sample <a href='text.php'>text</a> about something what is <a href='somelink.php'>text</a>.'

这是我得到的例子:

$text= 'this is sample <a href='<a href='somelink.php'>text.php</a>'><a href='somelink.php'>text</a></a> about something what is <a href='somelink.php'><a href='somelink.php'>text</a></a>.'

更新: 为什么我需要这个。 正在开发将所有关键字替换为充满标签的特定博客文章中的特定 URL 的功能。 例如如果

$keyword = 'key';

我需要查找并用 href 标签替换整个世界,例如:Key、Keyword、keyword、keylock、mykey、keys 或 KeY、Keyword具有 UNICODE 支持


如果必须使用正则表达式来完成,我认为 PCRE 动词是您最好的选择。排除所有链接,然后搜索具有单词边界的术语。

<a[\S\s]+?<\/a>(*SKIP)(*FAIL)|\bTERM\b

Demo: https://regex101.com/r/KlE1kc/1/

一个缺陷的例子是如果a曾经有过</a>在里面。例如onclick='write("</a>")'解析器确实是最好的方法。 HTML 和正则表达式有很多陷阱。

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

preg_replace 排除 PHP 的相关文章

  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP 基本身份验证 file_get_contents() [重复]

    这个问题在这里已经有答案了 我需要从网站解析一些 XML 数据 XML 数据是原始格式 但在我需要进行身份验证之前 基于基本网络服务器的身份验证 使用用户名和密码 I tried homepage file get contents htt
  • 创建 Facebook 测试用户时访问令牌出现问题

    我正在尝试为我的 Facebook 应用程序创建测试用户 他们在 11 月份的博客文章 http developers facebook com blog post 429 中宣布了此功能 并在此处记录了该功能 http developer
  • Python 非贪婪正则表达式

    我如何制作一个像这样的Python正则表达式 这样 给定 a b c d e 蟒蛇匹配 b 代替 b c d 我知道我可以使用 代替 但我正在寻找一种更通用的解决方案 使我的正则表达式更加干净 有没有办法告诉python 嘿 尽快匹配这个
  • 正则表达式最多匹配五个单词

    我有一个正则表达式 a zA Z 0 9 1 5 它验证该单词包含字母数字字符和少数特殊字符 并且长度不应超过5人物 如何使此正则表达式接受最多五个与上述正则表达式匹配的单词 a zA Z 0 9 1 5 s a zA Z 0 9 1 5
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • Doctrine 1 和 Symfony 1 的多个主键?

    我已经知道在 Symfony 1 和 Doctrine 1 中不可能使用多个主键 但是你们知道有什么好的解决方法吗 除了多对多关系之外 原则 1 不适用于多列上的主键 但如果你想使用多对多关系 请像这样使用 BlogPost columns
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • Windows批处理文件:将结构转换为单行字符串

    我需要将这个艰巨的任务作为批处理文件来完成 这对于 C 来说不是最困难的 但在 DOS 中是一个地狱 至少对我来说 我需要将结构转换为单个 var 字符串 才能在我的程序中再次将它们转换为该结构 别担心回归 一切都已经完成了 该结构的大小会
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 将html数据解析成python列表进行操作

    我正在尝试读取 html 网站并提取其数据 例如 我想查看公司过去 5 年的 EPS 每股收益 基本上 我可以读入它 并且可以使用 BeautifulSoup 或 html2text 创建一个巨大的文本块 然后我想搜索该文件 我一直在使用
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • 接口中的构造方法

    接口中的构造方法不好吗 为什么人们认为有人想要实例化接口 我们想要做的是强制实现者实现构造函数 就像其他接口方法一样 接口就像一个合同 假设我有一个接口 Queue 并且我想确保实现者创建一个带有一个参数的构造函数 该构造函数创建一个单例队
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE
  • 合并 url 中的 2 个输入值

    我有这样的形式
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • 性能:findIndex 与 Array.prototype.map [重复]

    这个问题在这里已经有答案了 In 2019 如果我正在处理一个长度在 15000 以上的对象数组 并且我需要按值查找对象的索引 那么以下哪种方法将是我在性能方面的最佳选择 六岁的 答案 在对象数组中 查找属性与搜索匹配的对象的索引的最快方法
  • 从Win32_PrintJob获取总页数

    Win32 PrintJob WMI 类具有许多属性 看 MSDN 上的 Win32 PrintJob 我有一个小型 NET 应用程序 用于显示打印作业并显示作业信息 The TotalPages属性给出了发送的页面数量 但该数字并未考虑用
  • 使用 MinGW-w64 在 MSYS2 上编译 BASIS

    我正在努力追随这些说明使用 MinGW w64 编译器在 MSYS2 上编译安装 BASIS CMake 构建系统和软件实现标准 但是 那ccmake 步骤失败 bash ccmake 找不到命令 我尝试通过以下方式搜索 MSYS2 软件包
  • R ggplot2 梯度图离散调色板

    在 SO 用户的帮助下 我现在可以使用以下命令绘制渐变图geom tile and scale fill gradient 现在我需要指定一个固定的调色板 我的第一次尝试是使用scale fill manual但我收到此错误消息 错误 提供
  • 如何在 Smack 中正确监听 MultiUserChat?

    我不确定如何正确监听 MultiUserChats 因为显然有两种不同的方式来监听它们 第一种方法是为每个房间添加一个 MessageListener 如下所示 MultiUserChat muc new MultiUserChat con
  • python中a = x和a=x[:]有什么区别[重复]

    这个问题在这里已经有答案了 我正在努力学习Python 有人可以帮助我理解以下两者之间的区别 a x 与 a x a x创建一个参考 a 2 x a print id a print id x 生产 39727240 39727240 所以
  • 使 log4j 控制台附加程序对不同线程使用不同颜色

    我正在追踪一些并发问题 当登录到控制台时 让每个线程的输出行以不同的颜色显示将非常有帮助 我使用的是 OS X 可以使用转换模式来输出一些控制代码来完成此操作 还是需要自定义附加程序 有人知道怎么做吗 2011 10 21 12 14 42
  • while(*p){p++;} 、while(*++p){;} 和 while(*p++){;} 有什么区别?

    是关于strcat功能 while p p and while p 两者都有效 但是 while p 不起作用 我认为第一和第三应该是相同的 但事实并非如此 我们假设p是一个字符串 while p p 1 while p 2 while p
  • 使用带 MVVM 指示灯的“X”按钮关闭窗口时进行确认

    我正在使用 WPF 和 MVVM Light 框架 我是新使用它们的 我想做以下事情 当用户单击 X 关闭按钮时 我想显示一个确认窗口 以确定他是否要退出应用程序 如果是 则应用程序关闭 如果否 则不会发生任何事情 他仍然可以正常使用该应用
  • gzip 使用 symfony2 压缩动态内容

    是否容易 可能告诉 symfony2 尊重 Web 浏览器发送的 Accept Encoding 标头以及 如果可能 gzip 压缩响应中呈现的内容 基于http developer yahoo com performance rules
  • 消息日期属性的架构名称

    我试图通过 PropertyAccessor 读取和写入消息日期 发送 接收 但无法弄清楚该属性的架构名称是什么 甚至不确定我是否正确传递了架构参数 正确的架构名称是什么 如何正确传递参数GetProperty and SetPropert
  • Powershell regex -replace 匹配的频率比应有的要高

    我有以下正则表达式 a z A Z 当我将它插入 RegEx 101 时 它似乎工作得很好 https regex101 com r vhifNL 1 但是当我将其插入 Powershell 以将匹配项替换为破折号时 它变得疯狂 JavaS
  • 使用 jquery 保存会话变量似乎不起作用

    我在存储会话时遇到问题 我正在使用的代码 save to session session compareLeftContent value alert session compareLeftContent http jsfiddle net
  • MongoDB 数组中对象的聚合总和

    我已经看到了很多关于如何对数组中的数组中的对象的属性求和的答案 但我正在尝试对跨文档的数组中的对象的各个属性求和 例如 给定此文档结构 id 1 stats number 100 year 2014 number 200 year 2015
  • 无法在 Netbean 中加载身份验证插件“caching_sha2_password”

    我正在使用 Netbean 连接 MySQL 8 0 并收到错误 无法加载身份验证插件 caching sha2 password 有什么解决办法吗 您应该使用 MySQL Connector J 8 0 9 或更高版本 对于 Window
  • 在不使用 Maven 的情况下在 NetBeans 上使用 Vaadin

    我从 Vaadin 开始 我想知道是否可以在 NetBeans 中使用这个框架而不使用 Maven 原因是使用 maven 的项目需要很长时间才能下载依赖项 并且由于连接超时问题而无法运行 我已经下载了多合一文件并尝试遵循这些 README
  • 如何使用表达式设计向图标添加 Windows Phone 系统颜色?

    我正在尝试在 Microsoft Expression Design 中创建图标 但我想添加系统资源颜色 例如手机背景和前景 以便当用户更改主题时图标会改变颜色 有谁知道如何在Expression Design中指定Windows Phon
  • “is None”和“== None”有什么区别

    我最近遇到了这种语法 我不知道其中的区别 如果有人能告诉我其中的区别 我将不胜感激 答案已解释here 去引用 一个类可以免费实现 比较任何它选择的方式 并且它 可以选择进行比较 没有任何意义 实际上 说得通 如果有人告诉你 实现 None
  • jQuery 实时且可排序

    我有以下静态 html ul li a href 10 Item 10 a li li a href 20 Item 20 a li li a href 30 Item 30 a li li a href 40 Item 40 a li l
  • PHP' aria-label='preg_replace 排除 PHP'> preg_replace 排除 PHP

    我使用 preg replace 用 href 标签替换文本中的关键字 我的正则表达式运行得很好 现在我的代码是 newstring2 preg replace p L preg quote match i p L ui a href cl