powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Ошибка в регулярном выражении
3 сообщений из 3, страница 1 из 1
PHP: Ошибка в регулярном выражении
    #40073642
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой фрагмент кода:
Код: php
1.
2.
3.
4.
5.
6.
	$d1p = '(\d{4})[-/.](\d{2})[-/.](\d{2})';
	$d2p = '(\d{2})[-/.](\d{2})[-/.](\d{4})';
	$t1p = '(\d{2})[-:](\d{2})';
	$t2p = '(\d{2})[-:](\d{2})[-:](\d{2})';
	$sp = '[  T@]';
	if (preg_match("~^{$d1p}{$sp}{$t1p}$~", $value, $m)) {


Почему-то он не матчит строку "2021-05-27 20:08", хотя должен.
Когда в качестве граничных символов вместо тильды (~) использовал слеш (/), то работало, но приходилось экранировать внутренние слеши.
...
Рейтинг: 0 / 0
PHP: Ошибка в регулярном выражении
    #40073644
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если точнее, то вот неработающий пример:
Код: php
1.
2.
3.
4.
5.
6.
7.
$d1p = '(\d{4})[-/.](\d{2})[-/.](\d{2})';
$t1p = '(\d{2})[-:](\d{2})';
$sp = '[  T@]';
$str = '2021-05-27 10:11';
$re = "~^{$d1p}{$sp}{$t1p}$~";
$ret = preg_match($re, $str, $m);
print_r([$re, $str, $ret, $m]);


Символ между датой и временем это неразрывный пробел (с кодом 160), он же указан и в $sp.
...
Рейтинг: 0 / 0
PHP: Ошибка в регулярном выражении
    #40073904
неразрывный пробел - это \s+
и [] не нужны там
а T@ первый раз вижу в регулярке

зы: d1p -> y2
d2p -> y4
t1p -> t2
t2p -> t3
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP: Ошибка в регулярном выражении
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]