在数组上使用 preg_replace

2023-11-25

我有一个相对较大的元素数组,我想搜索字符串并替换任何匹配项。我目前正在尝试使用preg_replace和正则表达式:

preg_replace("/\d?\dIPT\.\w/", "IPT", $array);

我想获得所有匹配的值00IPT.A or 0IPT.A (with 0代表任何数字字符和A代表任何字母)并将其替换为IPT。但是,我收到数组到字符串转换的通知。有什么办法可以得到preg_replace接受数组数据源?如果没有,我还有其他方法可以实现这一目标吗?

文档说preg_replace应该能够接受数组源——这就是我问的原因。

字符串或包含要搜索和替换的字符串的数组。 如果 subject 是一个数组,则对 subject 的每一项进行查找替换,返回值也是一个数组。

如果有帮助的话,该数组是多维的(一个主数组下有多个数组)。


preg_replace没有修改到位。永久修改$array,您只需分配结果preg_replace to it:

$array = preg_replace("/\d{1,2}IPT\.\w/", "IPT", $array);

对我有用。

$array = array('00IPT.A', '0IPT.A');
$array = preg_replace("/\d{1,2}IPT\.\w/", "IPT", $array);
var_dump($array);
// output: array(2) { [0]=> string(3) "IPT" [1]=> string(3) "IPT" }

注:\d{1,2}表示一位或两位数字。

如果要对二维数组执行此操作,则需要循环遍历第一个维度:

$array = array( array('00IPT.A', 'notmatch'), array('neither', '0IPT.A') );    
foreach ($array as &$row) {
    $row = preg_replace("/\d{1,2}IPT\.\w/", "IPT", $row);
}
var_dump($array);

output:

array(2) { 
    [0]=> array(2) { 
        [0]=> string(3) "IPT" 
        [1]=> string(8) "notmatch" 
    } 
    [1]=> &array(2) { 
        [0]=> string(7) "neither" 
        [1]=> string(3) "IPT" 
    } 
}

请注意,您必须循环遍历每一行引用 (&$row) 否则原数组将不会被修改。

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

在数组上使用 preg_replace 的相关文章

  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 正则表达式 数字字符串 数字字符串循环

    我的字符串是 str Move 10 Casio Watch 20 Apple Iphone 100 Apple Macbook to store 我用过了 preg match all 0 9 str matches 但它只匹配产品名称的
  • 如何检测字符串中的非 ASCII 字符?

    如果我有一个 PHP 字符串 如何以有效的方式确定它是否至少包含一个非 ASCII 字符 我所说的非 ASCII 字符是指不属于该表的任何字符 http www asciitable com http www asciitable com
  • 使用正则表达式模式查找 -name 并使用 cp 替换文件名

    目前我正在使用该命令cron复制 data从源到目标路径 find source path name data exec cp target path 源码结构为 source path category1 001 data source
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 在 C 中通过引用传递数组

    我是 C 新手 我有一个疑问 由于 C 函数创建其参数的本地副本 我想知道为什么以下代码按预期工作 void function int array array 0 4 array 1 5 array 2 6 int main int arr
  • 在 Go 中,如何将结构体转换为字节数组?

    我有一个我定义的结构实例 我想将其转换为字节数组 我尝试了 byte my struct 但这不起作用 另外 我还被指出二进制包 http golang org pkg encoding binary 但我不确定我应该使用哪个函数以及应该如
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • Perl:正则表达式不抓取代码中的多行 C 风格注释

    我有一个 Perl 程序 读取用 C 编写的 SRC 文件 使用 SRC 文件中的正则表达式匹配来查找特定格式的数据以用作目标文件名 打开新的目标文件 执行另一个正则表达式匹配以查找包含关键字 abcd 的所有 C 风格注释 注意 这些注释
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • 使用 crypt() 加密

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

随机推荐

  • 是否可以将 AutoLayout 与 UITableView 的 tableHeaderView 一起使用? [复制]

    这个问题在这里已经有答案了 自从我发现AutoLayout我到处都使用它 现在我尝试将它与tableHeaderView 我制造了一个subclass of UIView添加了我想要的所有内容 标签等 及其约束 然后我添加了这个Custom
  • 服务器端事件 (SSE) 未到达客户端

    我正在使用 MEAN 并尝试从服务器端接收事件 为此 我使用 EventSource 但它不起作用 我看到连接是如何打开的 但我没有从服务器收到任何消息 我可以在节点控制台中看到消息是如何发送的 但在客户端没有任何内容 浏览器控制台 我有点
  • 保存混乱的 .jsx 文件时采用更漂亮的格式

    I have format on save启用后 它在 js 文件中工作正常 但是当我尝试将代码保存在 jsx 文件中时 一切都会变得混乱 如何配置我的 prettier 以避免此问题而不禁用format on save 如果您使用的是 V
  • 自动映射器异常:“缺少类型映射配置或不支持的映射。”

    我尝试在 ASP NET MVC 5 应用程序中使用 Ninject 该应用程序使用 AutoMapper 将模型映射到视图模型 反之亦然 不幸的是 我收到一条错误消息 指出缺少类型映射配置 我创建了一个 Ninject 依赖解析器 nam
  • 如何以编程方式设置 dp 中的 EditText 上边距?

    在我的 Android 应用程序中 我想更改 editText 的 topMargin 问题是我想改变它 dp 明智而不是像素明智 我只想更改 topMaring 让另一个保持原样 不将它们设置为零 以编程方式我只能在 int 中设置边距
  • 提升无锁 spsc_queue 缓存内存访问

    我需要非常关注当前多线程项目中的速度 延迟 我试图更好地理解缓存访问 我不清楚无锁队列 例如 boost lockfree spsc queue 如何在缓存级别访问 使用内存 我见过使用队列 其中需要由消费者核心操作的大对象的指针被推入队列
  • 有没有办法使用“请求”通过 python 调用 Azure Devops?

    所以 从我所看到的大多数sources 他们说如果您尝试让 python 程序调用 azure devops api 调用 它会使用 python import 语句 例如 from azure devops connection impo
  • 如何使用android PhoneGap上传文件?

    我使用 Android PhoneGap 创建了应用程序 我想上传文件 即 当我单击上传按钮时 文件选择对话框将打开 然后我选择文件 然后单击该对话框中的打开按钮 我在phonegap API中使用文件传输 但输出不是这样的 如何修改pho
  • 如何在 Silverlight 上显示 tiff 文件?

    如何在 Silverlight 应用程序上显示 tiff 文件 我可以显示除 tiff 之外的任何图像格式 有人可以帮助我吗 谢谢 我成功地在 Silverlight 中显示 TIFF 免费移植很容易LibTiff NET库到 Silver
  • SQL Server - 遇到 0 时重置的累积总和

    我想对列进行累积和 但每当遇到 0 时都会重置聚合值 这是我尝试做的一个例子 该数据集 pk price 1 10 2 15 3 0 4 10 5 5 给出这个 pk price 1 10 2 25 3 0 4 10 5 15 在 SQL
  • Sublime Text 控制台不显示带重音符号的行

    在 Sublime Text 2 和 3 中 控制台输出不显示带有重音符号的行 我在用着Tools gt Build在 Windows 中的 vanilla Sublime 中 使用自动构建系统来执行它 有什么解决办法吗 将文档中标准系统输
  • 如何使用带有尾随空格的内联代码?

    当我使用 在我的 Sphinx 文档中 我收到以下警告 WARNING Inline literal start string without end string Trying samp leads to WARNING Inline i
  • 无法运行 Flask 文档中引用的示例代码

    我正在阅读 Flask 文档 并希望使用他们在 git 存储库中引用的示例 但是 教程与存储库中的代码不匹配 我无法运行它们 我收到以下错误 app cli command initdb AttributeError Flask objec
  • ggplot2中的渐变填充

    说一下是否有以下情节 library ggplot2 n lt 1169 df22 lt data frame x 1 n val seq 0 0 5 length out n type 1 ggplot df22 aes x x y va
  • 手臂。从超级用户模式访问用户 R13 和 R14

    如何访问进入管理员模式时保存的用户R13和R14 我使用的是 ARM7TDMI IE 我不想访问管理程序 R14 它现在包含用户模式的返回地址 而是想要用户模式链接寄存器的值 这是我正在编写的调试器的一部分 这些寄存器有特殊的别名吗 Tha
  • ImportError:尝试安装软件包时没有名为 pip 的模块

    使用 PyCharm 全新安装 Ubuntu 13 10 在设置 python 解释器时 我选择了 安装 setuptools 然后选择 安装 pip 现在 如果我尝试使用 pip 执行任何操作 我会得到以下结果 ciaran ciaran
  • 在管理站点中创建隐藏字段

    如何在管理站点中创建完全隐藏的字段 输入和标签 我知道关于exclude属性 但它完全从模板中排除该字段 而我在网页中需要它 但隐藏 class OutForm ModelForm reply to forms ModelChoiceFie
  • Cocoa:模拟 Macbook 上键和多媒体键

    我正在尝试使用以下命令模拟任何活动应用程序的上部 Macbook 键 CGEventCreateKeyboardEvent NULL CGKeyCode keycode true CGEventCreateKeyboardEvent NUL
  • 如何使 wxFrame 表现得像模态 wxDialog 对象

    是否可以使 wxFrame 对象表现得像模态对话框 创建 wxFrame 对象的窗口停止执行 直到 wxFrame 对象退出 我正在研究一个小游戏并遇到了以下问题 我有一个主程序窗口 用于托管主应用程序 战略部分 有时 我需要将控制权转移到
  • 在数组上使用 preg_replace

    我有一个相对较大的元素数组 我想搜索字符串并替换任何匹配项 我目前正在尝试使用preg replace和正则表达式 preg replace d dIPT w IPT array 我想获得所有匹配的值00IPT A or 0IPT A wi