Split/Explode PHP 中的一个字符串
Split/Explode a string in PHP
我需要拆分或分解字符串。
K1123-Food, Apple, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter
变成类似
的东西
K1123-Food, Apple
Z3456-Egg, Mushroom
M9902-Plant, Soil, Water
Q8876-Medicine, Car, Splitter
欢迎提供有关如何应用 preg_split 或 explode 的想法。
提前致谢。
这里有一个解决方案,使用 preg_match_all()
:
$s = 'K1123-Food, Apple, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter';
$pattern = '/(\w\d+-\w+(, [^\d]*))(, |$)/';
$matches = [];
preg_match_all($pattern, $s, $matches);
print_r($matches[1]);
这输出
Array
(
[0] => K1123-Food, Apple
[1] => Z3456-Egg, Mushroom
[2] => M9902-Plant, Soil, Water
[3] => Q8876-Medicine, Car, Splitter
)
好的,这是一个尝试捕获 Toto 提到的内容的高级解决方案:
$s = 'K1123-Food, Apple2, 123-456, Mushroom, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter';
$pattern = '/([A-Z]\d+-\w+(.(?!([A-Z]\d))+)+)(, |$)/';
$matches = [];
preg_match_all($pattern, $s, $matches);
print_r($matches[1]);
输出
Array
(
[0] => K1123-Food, Apple2, 123-456, Mushroom
[1] => Z3456-Egg, Mushroom
[2] => M9902-Plant, Soil, Water
[3] => Q8876-Medicine, Car, Splitter
)
请记住,永远不可能自动和正确地将结构放入其他非结构化内容中。
每个可能的解决方案 都会 对您的数据真正需要的结构做出一些假设。
我需要拆分或分解字符串。
K1123-Food, Apple, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter
变成类似
的东西K1123-Food, Apple
Z3456-Egg, Mushroom
M9902-Plant, Soil, Water
Q8876-Medicine, Car, Splitter
欢迎提供有关如何应用 preg_split 或 explode 的想法。
提前致谢。
这里有一个解决方案,使用 preg_match_all()
:
$s = 'K1123-Food, Apple, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter';
$pattern = '/(\w\d+-\w+(, [^\d]*))(, |$)/';
$matches = [];
preg_match_all($pattern, $s, $matches);
print_r($matches[1]);
这输出
Array
(
[0] => K1123-Food, Apple
[1] => Z3456-Egg, Mushroom
[2] => M9902-Plant, Soil, Water
[3] => Q8876-Medicine, Car, Splitter
)
好的,这是一个尝试捕获 Toto 提到的内容的高级解决方案:
$s = 'K1123-Food, Apple2, 123-456, Mushroom, Z3456-Egg, Mushroom, M9902-Plant, Soil, Water, Q8876-Medicine, Car, Splitter';
$pattern = '/([A-Z]\d+-\w+(.(?!([A-Z]\d))+)+)(, |$)/';
$matches = [];
preg_match_all($pattern, $s, $matches);
print_r($matches[1]);
输出
Array
(
[0] => K1123-Food, Apple2, 123-456, Mushroom
[1] => Z3456-Egg, Mushroom
[2] => M9902-Plant, Soil, Water
[3] => Q8876-Medicine, Car, Splitter
)
请记住,永远不可能自动和正确地将结构放入其他非结构化内容中。 每个可能的解决方案 都会 对您的数据真正需要的结构做出一些假设。