Если строки различаются настолько, насколько вы предполагаете, то это будет практически невозможно сделать точно.И это на любом языке;ничто в PHP не сделает это проще или сложнее: это проблема синтаксического анализа на естественном языке, и это действительно сложно автоматизировать.
Regex (с использованием функции preg_split()
) может выполнить эту работу, если строки являются регулярными, но не для произвольно сформулированных строк, подобных этим.Каждый из них имеет свой особый случай, поэтому вам нужно было бы написать отдельный бит кода для каждого ... но в этом случае вы могли бы также выполнить расщепление вручную.
ЕдинственноеВы получите данные такого типа без ручного вмешательства, если поставщик данных (то есть сайт, на который вы ссылались в комментариях?) может предоставить их в предварительно отформатированном виде.Возможно, они уже разбили данные на требуемый формат в своей базе данных продуктов, поэтому, если они захотят предоставить их, это сработает для вас.
Они почти наверняка захотят взять с вас плату заданные, но учитывая количество усилий, затрачиваемых на самостоятельное выполнение вручную, это, вероятно, стоило бы.