Intereting Posts
Как сохранить веб-страницу в качестве файла изображения с помощью PHP? SOAP-ERROR: Кодирование: объект не имеет свойства Игнорировать слэш при использовании шифрования в кодеигниторе Нужно добавить частичное совпадение строк в цикле foreach, чтобы найти ключи массива PHP cURL proxy С заголовком? Вызов неопределенного метода Illuminate \ Database \ Schema \ MySqlBuilder :: defaultStringLength () Создание PDF. Как я могу заставить это работать? Ошибки, населяющие PHP PREG_JIT_STACKLIMIT_ERROR – неэффективное регулярное выражение Как автоматически изменить размер DIV с помощью CSS, сохраняя соотношение сторон? неявный paypal payment – PAY – у вас нет разрешения на выполнение этого платежа неявно Как реализовать базовый «длинный опрос»? Как считывается массив в цикле foreach PHP? Как отображать изображение в PHP с помощью XML? Yii2: получить выбранные данные строк из столбцов столбца gridView в контроллер Строка SQL Select не работает

RegEx в PHP: найдите первую совпадающую строку

Я хочу найти первую совпадающую строку в очень длинном тексте. Я знаю, что могу использовать preg_grep () и взять первый элемент возвращаемого массива. Но делать это неэффективно, если мне нужно только первое совпадение (или я знаю, что есть только одно совпадение заранее). Любое предложение?

Related of "RegEx в PHP: найдите первую совпадающую строку"

preg_match () ?

preg_match () возвращает количество совпадений шаблонов. Это будет либо 0 раз (без соответствия), либо 1 раз, потому что preg_match () прекратит поиск после первого совпадения. preg_match_all () наоборот будет продолжаться до тех пор, пока он не достигнет конца предмета. preg_match () возвращает FALSE, если произошла ошибка.

Вот пример того, как вы можете это сделать:

 $string = 'A01B1/00asdqwe'; $pattern = '~^[AZ][0-9][0-9][AZ][0-9]+~'; if (preg_match($pattern, $string, $match) ) { echo "We have matched: $match[0]\n"; } else { echo "Not matched\n"; } 

Вы можете попробовать print_r($match) чтобы проверить структуру массива и протестировать ваше регулярное выражение.

Боковое примечание к регулярному выражению:

  • Тильда ~ в регулярном выражении – это просто разделители, необходимые для обертывания рисунка.
  • Каретка ^ означает, что мы сопоставляем начало строки (необязательно)
  • Плюс + означает, что мы можем иметь одно или несколько целых чисел. (Так что A01B1 , A01B12 , A01B123 также будут сопоставлены.