PHP/Regex:bbcode [s] 或 [strike] 的简单正则表达式无法工作

2023-12-09

对于一个愚蠢的 bbcode 解析器,我想将两个定义添加到一个中,我最初的 preg_replace 定义是这样的:

'#\[s\](.*?)\[/s\]#si', '<strike>\\1</strike>'

这可行,我希望用户能够使用[s] or [strike]以这种格式启动文本,所以我自然地添加了类似这样的内容,认为它会起作用:

'#\[(s|strike)\](.*?)\[/(s|strike)\]#si', '<strike>\\1</strike>'

不幸的是,这失败了,而不是你所期望的,两者[s] and [strike](正确使用) make: s罢工>和strike (我的降价是正确的,可以显示其真实的结果,它显示 s 或 Strike,无论里面有什么)

为什么它用标签名称替换内部文本?我在 s|strike 周围添加括号有问题吗?我可能做错了这一切。


问题是您添加了两个新的正则表达式组,(s|strike)在开始标签中和(s|strike)在结束标签中。所以在你的结果代码中你会得到s or strike。您只需使用正确的组号即可解决此问题,2.

另一种方法是通过添加一个新组来使该新组成为非引用组?:到一开始,但我想第一个解决方案更容易理解:

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

PHP/Regex:bbcode [s] 或 [strike] 的简单正则表达式无法工作 的相关文章

  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • Perl:正则表达式不抓取代码中的多行 C 风格注释

    我有一个 Perl 程序 读取用 C 编写的 SRC 文件 使用 SRC 文件中的正则表达式匹配来查找特定格式的数据以用作目标文件名 打开新的目标文件 执行另一个正则表达式匹配以查找包含关键字 abcd 的所有 C 风格注释 注意 这些注释
  • 检测两个正则表达式是否可能匹配相同的字符串[重复]

    这个问题在这里已经有答案了 给定两个正则表达式 是否可以检测是否存在与它们都匹配的可能字符串 例如 给定正则表达式A and 我可以看到那个字符串 A 匹配他们两个 这是一个简单的案例 我的问题是针对更广泛的情况 给定任何两个有效的正则表达
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 如何修复以下 Django 错误:“类型:IOError”“值:[Errno 13] 权限被拒绝”

    我正在遵循 Django 教程 在该教程中 一旦图像保存在管理中 您就需要构建一些图像缩略图 我还使用 Python 的 tempfile 模块来保存临时文件名 但是我不断遇到以下错误 Type IOError Value Errno 13
  • 为什么三元运算符不支持块?

    为什么三元运算符没有块 换句话说 为什么下面的代码不起作用并报告错误 braces int main int i 1 i 1 printf Hello n printf World n return 0 EDIT 也许这个问题被误解了 问题
  • Android 矢量绘图应用程序:srcCompat 不显示图像

    我正在使用支持库在 android kitkat 上显示矢量图像 当我在模拟器上测试我的应用程序时 我没有看到任何这些图像 我为 android lollipop 及以上做了一个单独的布局 它工作得很好 我想因为我正在使用src属性而不是s
  • 当前上下文中不存在名称 gridview1

    我是 C 新手 只需遵循 YouTube 简单示例并尝试简单地连接到 SQL 数据库 但GridView1给我一个错误 这是我的 WebForm1 aspx cs using System Linq using System Web usi
  • 将 count 作为标签添加到 geom_count 中的点

    我使用 geom count 将重叠点可视化为大小组 但我还想将实际计数作为标签添加到绘制的点上 如下所示 However to achieve this I had to create a new data frame containin
  • 将 JSON 对象从客户端 JavaScript 传递到 Node JS

    我有一个网页 它根据用户输入创建 JSON 对象 然后我想以某种方式允许用户将此 JSON 对象提交到 NodeJS 脚本以进行处理 插入到 MySQL 数据库中 然而 我真的不知道如何做这样的事情 我能想到的最好的办法就是某种形式的 PO
  • PHP parse_str 函数用空格替换+号

    我有一个变量 我通过 url 作为jSON字符串 其中一部分是以下字符串 signature 8W2sp J kC6fh8a88jabNPuA8048sShDnXNOo1jSQ 当我读取 url 并使用解析字符串时parse str php
  • 可以在现有 ASPNET.Core Web 项目中调用和/或使用辅助服务吗?

    我一直在阅读和学习 Net Core 3 0 中提供的新 Worker Service 功能 我一直在使用微软的这个链接 ASP NET Core 中托管服务的后台任务 我不明白的是 这些辅助服务概念是否可以引入到现有的 ASPNET We
  • 仅使用 data.table 将 NA 替换为 data.table 中的最后一个非 NA

    我想更换NA最后一个非 NA 值的值data table并使用data table 我有一个解决方案 但它比na locf library data table library zoo library microbenchmark f1 l
  • Google Drive API 403 禁止

    我们使用 Google Drive API 来允许用户浏览并选择要在报告中使用的文件 我们的一位用户 该问题并不普遍 在尝试获取文件列表时遇到错误 如下 从 Google 返回的 JSON 正文 error errors domain gl
  • HttpClient - 如何判断服务器是否更快地关闭?

    我正在使用 NETHttpClient向我的服务器发送请求 我已经设定HttpClient Timeout属性为 10 秒 所以我得到了A task was cancelled每当服务器无法在 10 秒内处理我的请求时 就会出现异常 到这里
  • Windows快捷方式的内部结构是怎样的?

    一台计算机上有 3 个硬盘 2 个 Windows XP 1 个 Windows 7 依次从每个硬盘加载操作系统 我发现在第一个 XP 中创建的一些工作快捷方式 不是全部 在第二个 XP 和 Windows 7 中不起作用 不可用于查看快捷
  • Xcode 4.5 iOS 6.0 模拟器方向不起作用

    我已经将我的 Xcode 更新到 4 5 我已经实现了如下方向方法 BOOL shouldAutorotate return YES NSUInteger supportedInterfaceOrientations return UIIn
  • ASMX 操作 404s,但 ASMX 服务描述没有,url 路由问题?

    所以我发现自己遇到了一个难题 我们的应用程序中有一些旧的 asmx Web 服务 多年来一直运行良好 突然间 他们停止了构建服务器 CI 上的工作 我说停止工作 因为即使当我导航到服务时显示服务描述 调用任何操作都不会路由到服务 Web 表
  • 在 React 中,ref 是引用虚拟 DOM 还是实际 DOM?

    我假设虚拟 DOM 并且 React 通过比较来处理它 但我有一位招聘人员说 ref 会影响实际的 DOM 我不明白这是怎么回事 我认为他们只是误会了 Refs 应该引用实际的 DOM Refs 的一种用法是与第三方 DOM 库集成 因此您
  • 使用 Lodash 合并复杂对象数组

    我是 Lodash 的新手 正在尝试解决这个问题 但可以找到一个好方法 我有一个从数据库返回的对象数组 数据结构如下 var data index 1 Aoo a1 Boo b2 index 1 Aoo a2 Boo b2 index 2
  • 无效的 Swift 支持/无效的 Swift 实现

    我想上传一个用 swift 编写的应用程序 应用程序加载器成功交付应用程序 但几分钟后我收到苹果的回复 无效的 Swift 支持 该捆绑包包含无效的 Swift 实现 该应用程序可能是使用不合规或预发布的工具构建或签名的 访问develop
  • 如何更新已从 BOT 发送给用户的自适应卡?

    我已经发送了包含捕获详细信息和按钮的卡片 从任务模块单击提交后 该模块将通过 http API 保存详细信息 此处的活动类型为 调用 现在我必须更新现有的自适应卡 我有更新消息的代码 但如何更新卡或再次重新发送卡 connector new
  • Webpack 提供的 Angular 2 应用程序基于环境的属性?

    我正在使用由 JHipster 生成并由 Spring Boot 服务器提供服务的独立 Angular 控制台 我希望根据环境 本地 开发 产品等 提供具有不同属性的应用程序 我看到很多关于配置每个环境的 webpack 构建的帖子 但我需
  • PHP/Regex:bbcode [s] 或 [strike] 的简单正则表达式无法工作

    对于一个愚蠢的 bbcode 解析器 我想将两个定义添加到一个中 我最初的 preg replace 定义是这样的 s s si