Кто-то, вероятно, мог бы добиться большего успеха, чем это, поскольку это довольно многословно:
/(?:mon|tues?|weds|thurs?|fri|sat|sun), [a-z]{3,4} [0-9]{1,2}, [0-9]{4}/i
$regex = '/(?:mon|tues?|weds|thurs?|fri|sat|sun), [a-z]{3,4} [0-9]{1,2}, [0-9]{4}/i';
$string = 'Sometimes text is here, Sun, Apr 09, 2000 And sometimes but not always text here';
preg_match($regex, $string, $matches);
echo $matches[0];
// Sun, Apr 09, 2000
Если вы ожидаете, что дата произойдет несколько раз, поможет небольшое изменение.
// store the match as a named parameter called 'date'
$regex = '/(?<date>(?:sun|mon|tues?|weds|thurs?|fri|sat|sun), [a-z]{3,4} [0-9]{1,2}, [0-9]{4})/i';
$string = 'Sometimes text is here, Sun, Apr 09, 2000 And sometimes but not always text here. Sun, Mar 10, 2010';
preg_match_all($regex, $string, $matches);
print_r($matches['date']);
/*
Array
(
[0] => Sun, Apr 09, 2000
[1] => Sun, Mar 10, 2010
)
*/
Началось с названия дня, просто на случай, если вы получите что-то похожее на день, но это не так.
Я бы также не советовал использовать ereg()
, так как он устарел в 5.3.0. Вместо этого используйте preg_match()
или одну из других функций preg_*
.