Мне нужно разделить строки, как:
Некоторое описание арт. Номер: 4457 72 1x ACOUCH 90X200 NICE GREY (3 колли) 1x матра 85x205x12 2x матра 80x190x11 Некоторые спецификации 14x Премиум другой продукт 90x200x23 HR34
Результат, который мне нужен:
- Некоторое описание арт. Номер: 4457 72
- 1x ACOUCH 90X200 NICE GREY (3 colli)
- 1x матра 85x205x12
- 2x матра 80x190x11 Некоторые характеристики
- 14x Премиум другой продукт 90x200x23 HR34
Чтобы сделать его более сложным, первая часть является дополнительной, нодругие части всегда начинаются с «1x» или около того.
Я пробовал много регулярных выражений, но не могу заставить его работать.Я могу использовать preg_split () с чем-то вроде /\s?\d+x\s/
в качестве обходного пути, но это действительно грязно, хотя и неплохо разбивается.
Даже когда я пытаюсь разбить части 2 на 5, я не могу сделать это правильно.
Я пробовал много регулярных выражений с preg_match_all () в php на наименее сложной строке:
1x ACOUCH 90X200 NICE GREY (3 colli) 1x matras 85x205x12 2x matras 80x190x11 Некоторые спецификации 14x Premium Другой продукт 90x200x23 HR34
Следующие шаблоны были наиболее близкими:
/(\d+x\s+.+?)(\s+(\d+x\s+.+?(?!\s\d+x\s)))+/i
/(\d+x\s+.+)(\s+(\d+x\s+.+))+/i
Я думаю, что это должно быть что-то вроде: /((\s+)?(\d+x\s+.+(?!\s\d+x\s)))+/i
, но это не делает работу.
А простые, такие как /(\s?\d+x\s+.+)+/i
просто возвращают полную строку или только первые символы /(\s?\d+x\s+.+?)+/i
Я пробовал эти (и многие другие варианты) на:
Что я делаю не так?Это сводит меня с ума;это действительно не мое первое регулярное выражение!
(и как заставить его работать на полную строку с необязательной первой частью)
Заранее спасибо!