23.01.2017, 23:22
|
Интересующийся
|
|
Регистрация: 09.09.2016
Сообщений: 19
|
|
Разбор строки на 3 части
Добрых вечеров... Бытий час пытаюсь разобрать строку типа:
Премьера, 19-й день, 20.01.17 22:45
Необходимо вытащить всё после второй запятой, т.е. 20.01.17 22:45
Написал:
$pattern = '/(\w+), (d+-\w) (\w+), (\d+.\d+.\d+ \d+:\d+)/i';
$replace = '${3}';
$str = preg_replace($pattern, $replace, $header);
И всё равно в переменной $str выдаёт первоначальный текст((
|
|
23.01.2017, 23:34
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
greengo86,
php?
|
|
23.01.2017, 23:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
greengo86,
var str = 'Премьера, 19-й день, 20.01.17 22:45';
var out = str.replace(/.*,\s/,'');
alert(out)
out = str.match(/[^,]+$/);
alert(out)
|
|
23.01.2017, 23:47
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
|
|
23.01.2017, 23:50
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
greengo86,
все это как, строку? Ну так explode(',', $header)[2].
|
|
23.01.2017, 23:51
|
Интересующийся
|
|
Регистрация: 09.09.2016
Сообщений: 19
|
|
Сообщение от рони
|
greengo86,
php?
|
Да!
Сообщение от Rise
|
greengo86, /\d\d\.\d\d\.\d\d\s\d\d\:\d\d/
|
Rise, так а \d это же цифры???
|
|
23.01.2017, 23:55
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Зачем вам REG, если можно проще?
|
|
23.01.2017, 23:57
|
Интересующийся
|
|
Регистрация: 09.09.2016
Сообщений: 19
|
|
Сообщение от laimas
|
greengo86,
все это как, строку? Ну так explode(',', $header)[2].
|
laimas,
Да, explode это класс, но вот хотелось ругялярками тут пройтись! Или предположим будет строка, где по ', ' не разобьёшь....
Обычную дату сдюжил:
$data = 20.01.2017;
$pattern = '/(\d+).(\d+).(\d+)/i';
$replace = '$3';
$date = preg_replace($pattern, $replace, $data);
А с букавками сложнее
|
|
24.01.2017, 00:01
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от greengo86
|
Да, explode это класс, но вот хотелось ругялярками тут пройтись!
|
Что? Запомните - там где можно обойтись без регулярных выражений, о них нужно забывать. Регулярные выражения для сложных разборов, а если строка и забрать из нее последнее, а как ни крути вы это заказываете в шаблоне, то уж пробел перед датой есть, что вам мешает разбивать по пробелу, и ltrim запятую слева?
|
|
24.01.2017, 00:03
|
Интересующийся
|
|
Регистрация: 09.09.2016
Сообщений: 19
|
|
Сообщение от Rise
|
greengo86, /\d\d\.\d\d\.\d\d\s\d\d\:\d\d/
|
Я имею ввиду, что мне до /\d\d\.\d\d\.\d\d\s\d\d\:\d\d/ написать в $pattern, чтобы у меня preg_replace сработал и выудить группу с только датой, например '$3'. Иначе мне приходит только изначальная строка
|
|
|
|