Lomoson
@Lomoson

Как поставить отрицание в preg_match()?

$reg = "/^999999/";
$phone = "999999sdfgdsgfsddagdf";
preg_match($preg, $str);

В данном случае preg_match() вернет true. Скажите, пожалуйста, как изменить выражение что-бы preg_match() возвращало true, если выражение начинается не из 999999.
if (!preg_match(...)) не подходит, нужно именно выражение.
Пробовал кучу комбинаций с !?(), но толку 0
  • Вопрос задан
  • 2463 просмотра
Решения вопроса 1
@beta3-z
<?php

$pattern = '/^(?!999999)/';

var_dump(preg_match($pattern, '99999zzx')); //1
var_dump(preg_match($pattern, '999999asdasdsd')); //0
var_dump(preg_match($pattern, '')); //1
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Lomoson
@Lomoson Автор вопроса
Типа так нужно было:

#^(?!(^999999$))#
Ответ написан
mytmid
@mytmid
нормальные люди в тостере хлеб поджаривают :D
Вариант без preg_match:
if( strpos('999999sdfgdsgfsddagdf', '999999') !== 0 ){
   // выполнится в том случае если начинается не с '999999'
}
Ответ написан
Ваш ответ на вопрос

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

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