我有以下文字(或其中一些类似的变体):
重复活动
首先开始:2010-09-16 17:00:00美国东部时间
持续时间:4800
活动状态:已确认
我需要选择“First Start”字段的时间戳和持续时间。
通常我会将字符串拆分为冒号,但由于时间戳包含它们,因此它会变得有问题。我对正则表达式不太满意,但有没有人知道能够选择我需要的两位数据呢?
欢呼声, 麦克
答案 0 :(得分:2)
假设格式保持这种方式,您可以搜索“:”,即冒号后跟空格。此后的字符串将是您的数据。
答案 1 :(得分:1)
对于一个简单的非正则表达式解决方案,找到带strpos($input, ":")
的第一个:
,然后该行的其余部分将具有该值。
答案 2 :(得分:1)
$content = '
Recurring Event
First start: 2010-09-16 17:00:00 EDT
Duration: 4800
Event Status: confirmed
';
$contentArray = explode('EDT' , $content);
$head = trim($content[0]);
//$head will contain 'Recurring Event First start:2010-09-16 17:00:00 '
$headArray = explode(' ' , $head);
$timeStamp = trim(end($headArray)); //which will have 17:00:00
答案 3 :(得分:0)
你可以这样做:
if(preg_match('/First start: ([-\d :]+)/',$input,$m)) {
$timeStamp = trim($m[1]);
}else{
$timeStamp = '';
}
if(preg_match('/Duration: (\d+)/',$input,$m)) {
$duration = $m[1];
}else{
$duration = '';
}