nipopadyuk
@nipopadyuk

Как осуществить двойное сравнение при помощи регулярного выражения на php?

Всем привет.
Имеется переменная, в которую приходят разные значения.
Но только при двух вариантах значений нужно вызвать функцию.
Как это можно сделать, при условии, что
Вариант из 3 символов: .Р1 - цифра может быть любая от 1 до 9, буквы может быть либо русская Р, либо латинская P
Вариант из 5 символов: .Р1И1 - обе цифры могут быть любые от 1 до 9, первая буква может быть либо русской Р, либо латинской P
Оба варианта начинаются с точки.
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
if (preg_match("/^\.[PР][0-9](И[0-9])?$/su", $var))
Ответ написан
Комментировать
@iljaGolubev
Разные функции для разных форматов (PHP 8)
$id = '.P1И2';
//$id = '.P3';

preg_match_all("/^\.(([РP][1-9])(И[0-9])?)$/u",$id,$found);

$fn = match(true){
	!empty($found[3][0])=>'longID',
	!empty($found[2][0])=>'shortID',
	default=>'wrongId'
};

// $fn($id);
echo ($fn);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы