Как исключить preg_split
передняя косая черта, сопровождаемая строкой, заключенной в одинарной кавычки?Как исключить preg_split переднюю косую черту, за которой следует строка, заключенная в одинарную цитату
Я был поражен этой проблемой совсем некоторыми.
Ниже приведен код, за которым следует выход.
$str = "storeid='1,2',categoryname = 'the ultimate \'operating room'";
$match = preg_split("/('[^'\\\\]*')/U", $str, null, PREG_SPLIT_DELIM_CAPTURE);
print_r($match);
ВЫВОДА
Array ([0] => storeid= [1] => '1,2' [2] => ,categoryname = 'the ultimate \ [3] => 'operating room' [4] =>)
Но вот мой Ожидаемый результат, я хочу, чтобы исключить \».
Надеюсь, что кто-то поймет и поможет мне здесь.
Array ([0] => storeid= [1] => '1,2' [2] => ,categoryname =[3] => 'the ultimate \'operating room' )
Если что картина будет порвать с любой ушедший символ (одинарные кавычки), который не является апостроф. Вы должны заменить '(?: \\\\ '[^' \\\\] *)' на '(? S: \\\\. [^ '\\\\\] *)' для обработки любых экранированных символы, включая символы новой строки. –
Я считаю, что исходное регулярное выражение, которое я написал в ответ, в порядке. Я не уверен, о чем я думал, написав описания. Спасибо, в любом случае. @CasimiretHippolyte – revo