2013-04-22 8 views
-4

Здравствуйте, я уверен, что я могу найти кого-то, кто может решить эту проблему ..PHP/Regex Как получить значение этой строки?

Я ищу, чтобы получить значение «21 апреля 2013» из этой строки:

$string = "Issue Date: Sunday April 21, 2013/week 10/2003week 11/2003week 12/2003week 13.." 

Спасибо заранее. ..

+1

'Дата выпуска/|' должна работать – Blender

+0

я попробовал: preg_match («# Дата передачи: (. *)/#", $ String, $ matches); а затем взорвать спички по космосу. Но это был плохой выбор. – Sebastian

ответ

2

Используйте preg_match() со следующим регулярных выражений /^Issue Date: [A-z]+ (.*) \//:

// prepare string and pattern 
$string = 'Issue Date: Sunday April 21, 2013/week 10/2003week 11/2003week 12/2003week 13..'; 
$pattern = '/^Issue Date: [A-z]+ (.*) \//'; 

// exec regex and check for results 
if(!preg_match($pattern, $string, $matches)) { 
    die('the pattern was not found'); 
} 

// output the results: 
$date = $matches[1]; 
echo $date; // output: 'April 21, 2013' 
+0

Он сказал, что хочет получить «21 апреля 2013 года» не «Воскресенье 21 апреля 2013 года» – Tom

+1

Да! Я тоже это понял. Проверьте мое обновление – hek2mgl

1

Если вы ищете то, что появляется первый (после "Дата выпуска:"), то это будет работать:

Issue Date: (.*) /

2

Нет необходимости в регулярном выражении: |: (. *)

$string = 'Issue Date: Sunday April 21, 2013/week 10/2003week 11/2003week 12/2003week 13..'; 
$array = explode(' ',$string); 
$date = $array[3] . ' ' . $array[4] . ' ' . $array[5]; 
echo $date; 
+0

@ hek2mgl Я не пропущу запятую – Tom

+0

Хорошая альтернатива. +1 – hek2mgl

+0

Чувак Я расстегнул ваше редактирование, потому что ваше редактирование создало вывод с двумя запятыми. Попробуйте код, прежде чем критиковать его ... – Tom

Смежные вопросы