"look at @[48382669205:275:JAY Z] an-6ren">
gpt4 book ai didi

PHP:从数组中的值中删除正则表达式字符串

转载 作者:行者123 更新时间:2023-12-02 07:29:09 25 4
gpt4 key购买 nike

我有一个数组$text:

Array
(
[0] => "(This is so cool!)"
[1] => "look at @[48382669205:275:JAY Z] and @[28940545600:27:Beyonc\303\251]'s page"
[2] => "@[30042869909:32:Van Jones] on Bowe Bergdahl drama"
)

我想匹配删除@[0-9] 文本,所以我的输出如下:

Array
(
[0] => "(This is so cool!)"
[1] => "look at JAY Z and Beyonc\303\251's page"
[2] => "Van Jones on Bowe Bergdahl drama"
)

我尝试了一大堆东西(preg_replace 等),但是这个正则表达式太棘手了,我得不到我想要的结果!感谢您的帮助。

最佳答案

您可以将 /@\[\d+:\d+:([^\]]+)\]/ 替换为 \1

<?php

$array = array(
"(This is so cool!)",
"look at @[48382669205:275:JAY Z] and @[28940545600:27:Beyonc\303\251]'s page",
"@[30042869909:32:Van Jones] on Bowe Bergdahl drama"
);

$array = preg_replace('/@\[\d+:\d+:([^\]]+)\]/', '\1', $array);

print_r($array);

输出:

Array
(
[0] => (This is so cool!)
[1] => look at JAY Z and Beyoncé's page
[2] => Van Jones on Bowe Bergdahl drama
)

DEMO

正则表达式剖析:

Regular expression visualization

  • @ - a literal at sign
  • \[ - 文字 [ 字符 - 你需要将其转义为 [ 是正则表达式字符
  • \d+ - 一个数字匹配 1 到无穷大次
  • : - 文字冒号
  • \d+ - 一个数字匹配 1 到无穷大次
  • : - 文字冒号
  • ([^\]]+) - 一个匹配组匹配任何不是文字的字符 ] 字符匹配 1 到无穷次(意思是它会一直匹配到 ]):
  • \] - 文字 ] 字符

关于PHP:从数组中的值中删除正则表达式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com