我正在尝试拆分字符串并使用正则表达式放置在数组中。
字符串可能每次都会改变
我需要做的是如果字符串与T匹配:那么我需要得到4774 4848
如果字符串与T:和M:匹配,那么我需要我的结果
array(
[0] => 4774 4848,
[1]=>0448 888 899
)
这是我的代码,
if (preg_match("/[T:|M:|Mob:|Phone:]\W(.*)[\W:]/mi", "T: 4774 4848 M: 0448 888 899", $matches))
print_r($matches);
这里我的输出是
Array
(
[0] => T: 4774 4848 M: 0448 888
[1] => 4774 4848 M: 0448 888
)
如何将[1] => 4774 4848 M: 0448 888
拆分为
[1] => 4774 4848,
[2]=>0448 888 899
请帮我解决这个问题。 提前谢谢!
答案 0 :(得分:1)
尝试进行匹配而不是分割。使用preg_match_all进行全局匹配。
preg_match_all("/(?:[TM]:|Mob:|Phone:)\s*\K.*?(?=\s*[A-Z]:|$)/mi", "T: 4774 4848 M: 0448 888 899", $matches);
print_r($matches);
<强>输出:强>
Array
(
[0] => Array
(
[0] => 4774 4848
[1] => 0448 888 899
)
)
仅使用T:
输入,
preg_match_all("/(?:[TM]:|Mob:|Phone:)\s*\K.*?(?=\s*[A-Z]:|$)/mi", "T: 4774 4848", $matches);
print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => 4774 4848
)
)