Разделить строку строки по n-й точке с запятой в строкеPhp

Кемеровские программисты php общаются здесь
Anonymous
Разделить строку строки по n-й точке с запятой в строке

Сообщение Anonymous »

Мне нужна помощь в поиске шаблона PCRE с помощью preg_split().

Я использую приведенный ниже шаблон регулярного выражения, чтобы разделить строку на основе ее начального трехсимвольного кода и точки с запятой. Шаблон отлично работает в Javascript, но теперь мне нужно использовать его в PHP. Я попробовал preg_split(), но мне только что вернули мусор.

// Каждая группа начинается с трехбуквенного кода и состоит из трех сегментов, разделенных точкой с запятой. Строка не будет завершаться точкой с запятой.

// Pseudocode
string_to_split = "AAA;RED;111;BBB;BLUE;22;CCC;GREEN;33;DDD;WHITE;44"

// This works in JS
// https://regex101.com
$pattern = "/[AAA|BBB|CCC|DDD][^;]*;[^;]*[;][^;]*/gi";

Match 1
Full match 0-11 `AAA;RED;111`
Match 2
Full match 12-23 `BBB;BLUE;22`
Match 3
Full match 24-36 `CCC;GREEN;33`
Match 4
Full match 37-49 `DDD;WHITE;44`

$pattern = "/[AAA|BBB|CCC|DDD][^;]*;[^;]*[;][^;]*/";
$split = preg_split($pattern, $string_to_split);

returns

array(5)
0:""
1:";"
2:";"
3:";"
4:""


Подробнее здесь: https://stackoverflow.com/questions/515 ... n-a-string

Вернуться в «Php»