如何在字符串中仅保留数字和连字符



我的文字不是英文的:

יום שלישי, 23 ינואר, 2018 06:00 - 07:00 

我只想节省时间:

06:00 - 07:00

然后将时间分开 - ,做:

$echo开始时间;

$echo末日;

您正在寻找一个正则表达式来解决此问题,一个好的正则表达式如下所示:

/([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/

这将与preg_match_all()相结合,以分解所有结果,并将它们存储在一个数组中,如下所示:

<?php
$string = 'יום שלישי, 23 ינואר, 2018 06:00 - 07:00';
preg_match_all("/([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/", $string, $matches);
print_r($matches[0]);

其中返回:

Array
(
    [0] => 06:00
    [1] => 07:00
)

并且可以在这里看到现场直播。

从这里,您只需将结果分配给新变量:

$start = $matches[0][0];
$end = $matches[0][1];

希望这有帮助! :)

除了使用正则表达式..如果您的字符串始终格式相同..无需使事情过于复杂..只需使用substr去掉时间 - 然后在-explode(包括空格(。

<?php
$string = '07:00 - 06:00 ... ... ... ';

$times = substr($string, 0, 13); // assuming your string format is always the same
$timeArr = explode(' - ', $times);
$starttime = $timeArr[1];
$endtime = $timeArr[0];
echo $starttime . ' - ' . $endtime;
?>

最新更新