Разделить строку по разделителю, но не, если он экранирован

Как я могу разбить строку по разделителю, но не в случае экранирования? Например, у меня есть строка:

1|2\|2|3\\|4\\\|4

Разделитель - | , а экранированный разделитель - \ | . Кроме того, я хочу игнорировать экранированные обратные косые черты, поэтому в \\ | | все равно будет разделителем.

Таким образом, с приведенной выше строкой результат должен быть:

[0] => 1
[1] => 2\|2
[2] => 3\\
[3] => 4\\\|4
52
задан NikiC 5 June 2011 в 04:33
поделиться