拆分为数组,难点是 C(x, y("z", 2, 0)), 是一个整体。
将字符串 $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]);

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Shiba Inu, kuasa yang pernah tidak dapat dihalang dalam dunia mata wang kripto, telah menyaksikan peningkatan yang luar biasa sebanyak 17,167,926.02% sejak 1 September 2020.

Pasaran mata wang kripto berada dalam keadaan hijau sedikit hari ini (18 September), dengan banyak aset seperti Bitcoin (BTC), Ethereum (ETH), dan Binance Coin (BNB) yang dicarta

ETFSwap (ETFS) telah mengambil pusingan menaik dalam prajualan sebagai token ICO viralnya, yang diramalkan oleh jutawan Solana berusia 22 tahun sebagai pencabar Dogecoin seterusnya yang bersedia untuk rali 2000x pada Q1 2025

Setelah mendominasi adegan syiling meme, kegemaran biasa kini menghadapi persaingan yang sengit. Pelabur yang mengejar pulangan yang besar mengalihkan pandangan mereka kepada pesaing baharu yang berpotensi untuk memperoleh keuntungan yang mengagumkan. Pasaran crypto heboh dengan spekul

Memandangkan pasaran mata wang kripto terus matang dan berkembang, projek baharu memasuki kancah, masing-masing menjanjikan pulangan yang mengubah kehidupan.

Orang ramai fikir larian lembu jantan akan datang ke pasaran crypto. Seekor ikan paus terkemuka dari Binance Coin (BNB) dan Tron (TRX) sedang bersedia untuk acara ini dengan memuatkan di Lunex Network (LNEX).

Binance mengumumkan sokongan perdagangan spot untuk Act I: The AI Prophecy (ACT), mencetuskan lebih daripada 2,224% letupan awal hari Isnin.

Pelabur dan peniaga kini memberi perhatian kepada Solana selepas kemunculan semula yang mengagumkan, membolehkan mata wang digital sekali lagi mencecah paras tertinggi dua bulan.
