4
的如何更換雙反斜線的組中的字符串*
PHP更換組雙反斜線
例如:
\\\\a -> **a
\\\a -> *\a
\\a -> *a
\a -> \a
我嘗試同時使用str_replace
和preg_replace
但未能在第二種情況下
str_replace('\\', '*', $str);
preg_replace('/\\\\/', '*', $str);
=> `\\\a` -> `**a`
的原因我想要做到這一點是我想要的東西相同Split string by delimiter, but not if it is escaped但
$str = '1|2\|2|3\\|4\\\|4';
$r = preg_split('~\\\\.(*SKIP)(*FAIL)|\|~s', $str);
var_dump($r);
給我。
0 => string '1' (length=1)
1 => string '2\|2' (length=4)
2 => string '3\|4\\' (length=6)
3 => string '4' (length=1)
我期待像
[0] => 1
[1] => 2\|2
[2] => 3\\
[3] => 4\\\|4
PHP 5.4.45-2
讓我說我的原始字符串是''1 | 2 \ | 2 | 3 \\ | 4 \\\ | 4';'我怎樣才能將它轉換爲''1 | 2 \\ | 2 | 3 \\ \\ | 4 \\\\\ | 4';'? – Hardy
我不知道你怎麼能[從'3 \ 4''告訴'2 \ 2'](https://ideone.com/pjTLHG)。即使您使用['$ byte_array = unpack('C *',$ str);'](https://ideone.com/HLTE1b)將字符串轉換爲字節數組,您也不會發現它們之間的差異。 –