目录
回复讨论(解决方案)
首页 后端开发 php教程 拆分为数组,难点是 C(x, y("z", 2, 0)), 是一个整体。

拆分为数组,难点是 C(x, y("z", 2, 0)), 是一个整体。

Jun 23, 2016 pm 01:33 PM
2


将字符串 $s='A, B, C(x, y("z", 2, 0)), D, E';
拆分为数组,难点是 C(x, y("z", 2, 0)), 是一个整体。

想要的结果:
array(
  'A', 
  'B', 
  'C(x, y("z", 2, 0))', 
  'D',
  'E');


回复讨论(解决方案)

$s='A, B, C(x, y("z", 2, 0)), D, E';$keywords = preg_split("/\,\s(?=[A-Z])/", $s);var_dump($keywords);
登录后复制
登录后复制

$s='A, B, C(x, y("z", 2, 0)), D, E';$keywords = preg_split("/\,\s(?=[A-Z])/", $s);var_dump($keywords);
登录后复制
登录后复制



-----------------------------
非常感谢你的回复!但是靠?=[A-Z] 不准确,因为有可能括号内也是大写(嵌套的括号内不管什么内容是一个整体)。
$s='A, B, C(X, Y("Z", 2, 0)), D, E';

$s='A, B, C(X, Y("Z", 1, 0)), D(X, Y("Z", 2, 0)), E,F(X, Y("Z", 3, 0))';//提取获取里面的内容preg_match_all("/\(.*?\)\)/",$s,$match);//这部分正则可以自行修改$s = str_replace($match[0],'%',$s);//将整体的替换成某个符合,%百分号也可以自己选定$exs = explode(',',$s);$i = 0;foreach($exs as $key=>$value){	if (strpos($value,"%") !== false) {				$exs[$key] = str_replace('%',$match[0][$i],$value);		$i ++;	}}var_dump($exs);
登录后复制

帮你在复杂化了

所以这种事情不是正则能够胜任的,老老实实写个函数比绞尽脑汁写正则实惠的多

$s='A, B, C(x, Y("z", 2, 0)), D, E';print_r(foo($s));function foo($s) {  $r = array();  $m = 0;  $t = '';  for($i=0; $i<strlen($s); $i++) {    if($s{$i} == '(') $m++;    if($s{$i} == ')') $m--;    if($m == 0 && $s{$i} == ',') {      if($t) $r[] = $t;      $t = '';    }else $t .= $s{$i};  }  if($t) $r[] = $t;  return $r;}
登录后复制
Array(    [0] => A    [1] =>  B    [2] =>  C(x, Y("z", 2, 0))    [3] =>  D    [4] =>  E)
登录后复制

感谢2位的回复。
想到了一个匹配括号嵌套的正则,有类似计算的可以参考一下。(没有严谨测试)

$s='A, B,C(X, Y("Ez", 2, 0, Z(kk, 99))),D, E(u(8 , D(88)))';
preg_match_all('/[A-Z](?=[,])|[^,]*\(([^()]+|(?R))*\)/',$s,$z);
print_r($z[0]);

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

柴犬 (SHIB) 回调后,狗狗币交易者转向 RCO Finance (RCOF) 柴犬 (SHIB) 回调后,狗狗币交易者转向 RCO Finance (RCOF) Aug 12, 2024 am 12:16 AM

Shiba Inu,曾经是加密货币世界不可阻挡的力量,自 2020 年 9 月 1 日以来,已经实现了 17,167,926.02% 的惊人涨幅。

Neiro (NEIRO) 每日飙升 110%,成为第 13 大 Meme 币 Neiro (NEIRO) 每日飙升 110%,成为第 13 大 Meme 币 Sep 18, 2024 pm 09:11 PM

今天(9 月 18 日)加密货币市场略呈绿色,比特币 (BTC)、以太坊 (ETH) 和币安币 (BNB) 等众多资产走势图

ETFSwap (ETFS) 病毒式 ICO 代币的表现将超越狗狗币并创造百万富翁,22 岁的 Solana 百万富翁预测 2025 年将上涨 2000 倍 ETFSwap (ETFS) 病毒式 ICO 代币的表现将超越狗狗币并创造百万富翁,22 岁的 Solana 百万富翁预测 2025 年将上涨 2000 倍 Oct 18, 2024 am 04:38 AM

ETFSwap (ETFS) 作为其病毒式 ICO 代币,在预售中出现了看涨趋势,一位 22 岁的 Solana 百万富翁预测,下一个狗狗币挑战者将在 2025 年第一季度上涨 2000 倍

XYZVerse:下一个 Meme 硬币冠军! XYZVerse:下一个 Meme 硬币冠军! Oct 24, 2024 pm 07:12 PM

曾经在模因币领域占据主导地位的热门货币现在面临着激烈的竞争。追求丰厚回报的投资者正在将目光转向有潜力获得可观收益的新竞争者。加密货币市场充斥着投机行为

Lunex Network (LNEX) 预售期间将实现 18 倍增长 Lunex Network (LNEX) 预售期间将实现 18 倍增长 Oct 14, 2024 pm 04:30 PM

人们认为加密市场即将迎来牛市。来自 Binance Coin (BNB) 和 Tron (TRX) 的知名鲸鱼正在 Lunex Network (LNEX) 上加载,为此次活动做准备。

Solana (SOL) 加密货币是否已经成熟,可能出现价格大幅上涨?一些市场分析师认为确实如此 Solana (SOL) 加密货币是否已经成熟,可能出现价格大幅上涨?一些市场分析师认为确实如此 Oct 23, 2024 am 09:08 AM

在令人印象深刻的卷土重来后,投资者和交易员现在开始关注 Solana,这使得该数字货币再次触及两个月高点。

FXGuys (FXG):下一个狗狗币?分析师预测到 2025 年将增长 2,500% FXGuys (FXG):下一个狗狗币?分析师预测到 2025 年将增长 2,500% Oct 14, 2024 pm 01:48 PM

随着加密货币市场的不断成熟和发展,新的项目不断涌现,每个项目都承诺带来改变生活的回报。

两种基于 Solana (SOL) 的 Memecoin 在获得全球最大加密货币交易所币安的突然支持后呈抛物线走势 两种基于 Solana (SOL) 的 Memecoin 在获得全球最大加密货币交易所币安的突然支持后呈抛物线走势 Nov 12, 2024 am 06:16 AM

币安宣布支持第一幕:人工智能预言 (ACT) 现货交易,周一早些时候引发了超过 2,224% 的爆炸式增长。

See all articles