用于特定文本模式的 PHP 正则表达式

2024-02-20

在我的网站上,我在正文中插入了项目创建的年份,并将其替换为“六年前”(或者无论有多长)。

所以在我的内容中我有:

我们自 1998 年开始营业,并在 [2011] 年前制作了这种包装设计。

我试图使用正则表达式将 2011 放入变量中以便稍后搜索和替换,但无法弄清楚。每页只会有一个实例。我很擅长搜索和替换,这只是我一直无法理解的正则表达式。

为了解决下面的评论 - 年份是可变的,这就是我想使用正则表达式的原因。

example

$bodycontent = <p>We've been in business since 1998 
and produced this logo design [2002] years ago.</p>

or

$bodycontent = <p>We've been in business since 1998 
and produced this website design [2016] years ago.</p>

因此,我将大括号中的年份放入正则表达式为 $ 的变量中,然后从当前年份中减去该年份以得到 $age (由另一个函数将其转换为单词)

$bodycontent = str_replace("[".$then."]",$age,$bodycontent)

我试过了

preg_match("[\d{4}]",$bodycontent,$found); 

但它返回第一个日期——而不是大括号中的日期。


使用功能preg_replace_callback() http://php.net/manual/en/function.preg-replace-callback.php:

$bodycontent = preg_replace_callback('~\[(\d{4})\]~', function($match) {
    return (date('Y') - $match[1]) . " ago";
}, $bodycontent);

demo https://eval.in/954121

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

用于特定文本模式的 PHP 正则表达式 的相关文章

  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • 为什么我的会话仍然存在?

    我一定很愚蠢 因为似乎一件相当明显的事情现在让我完全困惑 我有一个会议 ie SESSION handbag id 在某个时刻 我需要彻底终止这个会话 ie at the start of the page session start el
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • CodeIgniter 自定义库未加载

    我是 CodeIgniter 的新手 并尝试用它开发一个相当简单的应用程序 只是一个用于处理想要娱乐中心通行证的员工的注册的表单 我正在尝试将事物分开以使它们更清晰 这是代码 应用程序 控制器 reccenter php class Rec
  • 在服务器上找不到本地主机或 phpMyAdmin:如何修复?

    我按照安装说明进行操作PHP MySQL and PHPMyAdmin 但是当我尝试访问时http localhost phpmyadmin 我收到此错误 未找到 在此找不到请求的 URL phpmyadmin 服务器 然后我尝试访问loc
  • PHP WCF 集成

    是不是如果我想支持php客户端访问我的服务 我必须有一个基本的http端点 这是因为php仍然只支持soap 1 1吗 据我所知 自从我使用 PHP 以来已经两年了 情况仍然如此 如果客户端应用程序将使用 PHP 的内置 SoapClien
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • 将 cookie 设置为在当天结束时过期

    我想设置一个 cookie 并让它在一天结束时过期 这有效 但 24 小时后过期 setcookie route upgrade voted true time 86400 这不起作用 setcookie route upgrade vot
  • 如何使用更新资源控制器 laravel 4?

    我有带有索引 编辑 更新方法的客户控制器 Route resource customer CustomerController 控制器方法更新 public function update id echo id 我的 HTML 表单
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 通过 htaccess 将 PNG 解析为 PHP 仅适用于本地服务器,但不适用于网络服务器

    我用 PHP 创建了一个动态 PNG 图片 为了使用 PNG 扩展名 我创建了一个包含以下内容的 htaccess 文件 AddType application x httpd php png 在我的本地 XAMPP 服务器上 一切工作正常
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4
  • PHP更改小数点分隔符

    在某些情况下 PHP 会在操作后更改小数点分隔符 下面是一个示例 为什么小数点分隔符变成 这是一个多语言网站 在西班牙语版本中 区域设置设置为西班牙语 es ES 小数点分隔符为 这就是为什么正在改变 解决方案是强制 LC NUMERIC

随机推荐

  • Adobe AIR - 带图像的自定义预加载器

    Folks 我设计了一个Adobe AIR应用 我想展示一些preloader在它打开之前 任何人都可以指导我的教程preloader 专门针对 AIR或者任何已经内置的 Thanks 借助 AIR 我可以想出几种方法来实现这一目标 1 使
  • go + cgo 和链接

    我想使用以下 c 作为 Go 的 cgo include
  • 如何使用 javascript 在 selenium 中设置网络节流?

    如何使用 selenium 和 javascript 在 chrome 中设置网络节流设置 我也花了一些时间才弄清楚这一点 但这似乎对我有用 driver await new Builder forBrowser engine usingS
  • React 卸载并重新挂载子组件

    我有一个 npm 导入的组件 CKEditor 它只关心其父组件在安装时的状态 也就是说 无论父组件的状态发生什么变化 如果父组件已经挂载 CKEditor 都不会反映这些变化 这对我来说是一个问题 因为当父组件更改其语言属性时 我需要 C
  • 如何在屏幕退出时隐藏有条件的自定义字段?

    我的任务是自定义标题详细信息屏幕ME33K交易 目标是添加一个包含新字段的框 仅当协议类型是我使用交易定义的类型时才应显示该框SPRO 例如 协议类型ABC 我开始使用CMOD交易中 我创建了一个虚拟框和带有一些硬编码输入值的字段 并且工作
  • Scala 相等与类型检查?

    是否有统一的方法来执行类型检查的相等性 很遗憾 val objectA String test val objectB Int 2 objectA objectB 如果 objectB 是 Int 而 objectA 是 String 则相
  • 具有多个 CDVViewController 的 Phonegap/Cordova

    我的想法是使用 Phonegap 作为我的应用程序的业务逻辑 但使用本机转换 所以我在每个 UIViewController 中都需要 CDVWebView 这对于普通的 UIWebviews 来说工作得很好 但是如果我使用多个 CDVVi
  • 在android中设计一个如下图所示的带有图像按钮的布局

    Hi 我想设计像上图这样的按钮 八个按钮以圆形方式 我很困惑如何将它们设计成圆形的板球标志 我已经尝试使用相对布局和线性布局 但不能这样做 请帮助我使这个观点得以实施 查看车轮组件 http developer digitalaria co
  • 选择 Hive 中的前 2 行

    我正在尝试根据配置单元 版本 0 11 中的工资从我的员工列表中检索前 2 个表 由于它不支持TOP功能 有什么替代方案吗 或者我们有定义一个UDF吗 是的 在这里你可以使用LIMIT 您可以通过以下查询尝试一下 SELECT FROM e
  • LWJGL 3.2.0+ 字体

    我使用 lwjgl 一段时间了 最 近我决定从固定功能管道切换到着色器 因此 当我启动程序时 我首先设置 ContextAttrib 3 2 这样我将使用 GL 3 2 问题是 当我打开更高版本的 GL 时 很多功能都不受支持 在切换到更高
  • Python:使用图表创建 Excel 工作表

    是否有任何模块可以在 Python 中创建带有嵌入图表的 Excel 图表 这个问题中提到的模块 https stackoverflow com questions 553019 python excel making reports好像没
  • 使用 CMake 设置应用程序图标

    有没有跨平台的方法来使用 CMake 设置应用程序图标 我正在使用 Cmake 3 0 2 和 Qt 5 4 在Qt中文档 http doc qt io qt 5 appicon html显示了一种方法 但它不是跨平台的 CMake 不会为
  • Heroku 上 React 应用程序的简单密码保护

    我有一个简单的 React 应用程序 是用 create react app 创建的 我想将其部署到 Heroku 或简单的地方 并进行密码保护 保护可以非常简单 只需一个密码就可以了 我开始研究 HTTP 基本身份验证 但没有找到简单的答
  • 为什么 PathPrefixStrip 可以工作而 PathPrefix 不能?

    我有一个 GatsbyJS 静态站点 prefix paths The pathPrefix被设定为 environment test in gatsby config js 它被部署到运行 Traefik 的 docker swarm 中
  • 本地目录路径

    一个相当简单的问题 如何找到我的exe所在的本地目录的路径 就像我有一个 exe 一样 在程序中我必须在 exe 所在的目录中创建一个 txt 文件 语言 C 因此 如果 exe 位于 C Temp 并从那里启动 我的 txt 应该在 C
  • 使用 R 删除列表中空的零长度行

    我有数据框列表 有些是空的 如何删除它们 S566X7221 1 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23 V24
  • 如何从 Google Colab 访问我的 Google 云端硬盘文件?

    我使用以下网址从网址下载了图像urlretrieve urllib 在 Google Colab 中 但是 下载图像后 我无法找到图像 from google colab import drive drive mount content g
  • Vaadin:如何显示 MySQL 数据库中的数据?

    我正在开发 Vaadin Flow 版本 14 1 应用程序 但遇到了这个问题 我无法将其直接与 MySQL 数据库连接 我已经与 Maven 设置了 JDBC 连接 还创建了一个名为 Datasource 的单例类 在其中存储我的值和方法
  • 如何使用VBA在Excel中的所有行前面添加单引号

    我有一个电子表格 其中包含带有日期的第一列 我希望文本保留为 May 21 但采用字符串形式 单元格值应该是 May 21 但是当我尝试将其转换为字符串时 它使用 5 位数字 如果我将列保留为日期格式 它会首先自动选择 May 因此即使格式
  • 用于特定文本模式的 PHP 正则表达式

    在我的网站上 我在正文中插入了项目创建的年份 并将其替换为 六年前 或者无论有多长 所以在我的内容中我有 我们自 1998 年开始营业 并在 2011 年前制作了这种包装设计 我试图使用正则表达式将 2011 放入变量中以便稍后搜索和替换