用空格和连字符分隔句子使用Regex PHP



我想将这个字符串拆分为3个数组元素。

MW 01:00 PM-02:30 PM

输出:

array[0] = MW
array[1] = 01:00 PM
array[2] = 02:30 PM

帮助我使用正则表达式,该表达式将该字符串提取到数组中。

^[a-zA-Zd-_]+$

如果前面有一个数字,您可以使用lookahead在空格和可选连字符处进行拆分。

$arr = preg_split('/ +-? *(?=d)/', $str);

查看中eval.in的演示

<?php 
$str = "MW 01:00 PM - 02:30 PM";
$matches = [];
preg_match("/^([a-zA-Z]+)s+(d{1,2}:d{1,2}s+PM)s+-s+(d{1,2}:d{1,2}s+PM)$/",$str,$matches);
print_r($matches);

输出

Array
(
[0] => MW 01:00 PM - 02:30 PM
[1] => MW
[2] => 01:00 PM
[3] => 02:30 PM
)

这也有效(但更长(:

$str = "MW 01:00 PM - 02:30 PM";
preg_match('/([A-Z]{2}) ([0-9]{2}:[0-9]{2} [A-Z]{2}) - ([0-9]{2}:[0-9]{2} [A-Z]{2})/', $str, $match);
echo '<pre>' . print_r($match, true) . '</pre>';

输出:

Array
(
[0] => MW 01:00 PM - 02:30 PM
[1] => MW
[2] => 01:00 PM
[3] => 02:30 PM
)

最新更新