我正在使用 laravel php 并嘗試將字符串分解為數(shù)組。該字符串始終包含斜杠字符,但該字符可以出現(xiàn)多次:例子:輸入字符串:"abcd\\efg\\\\hij\klm\\\\\\\opq"預(yù)期的數(shù)組:[abcd, efg, hij, klm, opq]我嘗試使用str_replace函數(shù)替換'\'to '',但它給出了錯(cuò)誤的結(jié)果,因?yàn)樵诜纸庾址畷r(shí)我不會(huì)使用任何分隔符。我知道正則表達(dá)式可以做到這一點(diǎn),但我不知道如何實(shí)現(xiàn)這一點(diǎn)。我希望有人能在這件事上幫助我。
1 回答

暮色呼如
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以preg_split與正則表達(dá)式/+(匹配一個(gè)或多個(gè)/字符)一起使用來(lái)分割可變長(zhǎng)度的/字符子串:
<?php
$string = "abcd//efg////hij/klm//////opq";
var_dump(preg_split('`/+`', $string));
更新
自從OP將分割字符和字符串更改為反斜杠以來(lái)進(jìn)行了更新\。
與上面顯示的正斜杠類似,反斜杠也可以使用正則表達(dá)式進(jìn)行匹配\\\\+。您需要轉(zhuǎn)義字符串和正則表達(dá)式的反斜杠,因此\\\\+變?yōu)?string \\+,從而變?yōu)樵?regex \+:
<?php
$string = "abcd\\efg\\\\hij\klm\\\\\\\opq";
var_dump(preg_split('/\\\\+/', $string));
- 1 回答
- 0 關(guān)注
- 166 瀏覽
添加回答
舉報(bào)
0/150
提交
取消