Hello! 欢迎来到小浪资源网!


PHP正则表达式:如何正确转换带引号的数字?


PHP正则表达式:如何正确转换带引号的数字?

php 正则表达式的困惑

你在使用正则表达式转换红色数字字体时遇到了困难。让我们来分析你的代码并找出错误所在:

preg_replace('/^"customeruid":(d{1,})./', '"customeruid":"1",', $row);

这个正则试图匹配以 “customeruid”:” 开头的行,其中 d{1,} 匹配一个或多个数字。但是,你的正则存在一个错误:

  • 误导的换行符:你的正则表达式使用 ^ 匹配行首,但此声明并不是必需的,因为它已经在 preg_replace() 函数中指定。

正确修改后的正则表达式如下:

立即学习PHP免费学习笔记(深入)”;

preg_replace('/"customerUid":(d{1,})/', '"customerUid":""', $row);

修改后正则的解释:

  • “customeruid”: 匹配 “customeruid”: 字符串
  • (d{1,}) 捕捉群组,匹配一个或多个数字。
  • 1 替换引用,用捕获的数字替换为字符串

因此,最终修改后的正则表达式将匹配红色字体中的数字,并用引号包裹它们。

相关阅读