在使用兩個分隔符解析字符串並在分隔符的'after'部分保留分隔符時,我有點迷失了preg_split。我的分隔符是$或#。 例如:帶有兩個分隔符的PHP preg_split,並在「after」字符串中保留分隔符
$str = 'participant-$id#-group';
$ar = preg_split('/([^$#?]+[$#?]+)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
echo "<pre>"; print_r($ar); echo "</pre>";
將顯示:
Array
(
[0] => participant_data-$
[1] => id#
[2] => -group
)
不過,我需要:
Array
(
[0] => participant_data-
[1] => $id
[2] => #-group
)
正則表達式使我的大腦受到傷害。那麼有人可能會建議我如何使用PREG_SPLIT_DELIM_CAPTURE並在分段的開頭保留分隔符? 謝謝!
工程就像一個魅力 - 謝謝。你能解釋嗎?標記正確 – user2968159
@ user2968159我假設'$ id'以'$'開始,並且不包含'#',所以正則表達式'(\ $ [^#] +)'由'\ $'和'[^#] +'。 –
@ user2968159它會返回分隔符模式,因爲已設置標誌'PREG_SPLIT_DELIM_CAPTURE'。再例如,它將爲輸入的'participant- $ id#-group- $ id2'返回'['participant-','$ id','#-group-','$ id2']'。希望這可以幫助。 –