Привет, ребята, новичок в регулярном выражении. Я просто устал, действительно изучая все символы регулярных выражений и все. Мне нужно знать, в чем цель большего, чем символ в регулярном выражении, например.
preg_match('/(?<=<).*?(?=>)/', 'sadfas<email@email.com>', $email);
Пожалуйста, скажите мне, что использование символа больше символа и меньше символа в регулярном выражении.
Любая помощь будет принята с благодарностью .. 🙂
Символ, отличный от символа, просто соответствует буквалу > в конце целевой строки.
Менее чем символ не так прост. Сначала давайте рассмотрим синтаксис lookaround:
Шаблон (?<={pattern}) является положительным утверждением lookbehind, он проверяет, предшествует ли строка, совпадающая по времени, с строкой, соответствующей {pattern} .
Шаблон (?={pattern}) является положительным утверждением для просмотра, он проверяет, соответствует ли строка, соответствующая в настоящее время, строкой, соответствующей {pattern} .
Так сломайте свое выражение
(?<=<) утверждают, что текущей согласованной строке предшествует литерал < .*? сопоставлять все ноль или более раз, лениво (?=>) чем в текущей строке, за которой следует буква > email@email.com все вместе, шаблон будет извлекать email@email.com из строки ввода, которую вы ему дали.
Регулярное выражение используется для поиска адреса электронной почты между символами < и > . В вашем примере ввода он захватывает email@email.com .
Объяснение:
(?<=<) Positive Lookbehind - Assert that the regex below can be matched < matches the character < literally .*? matches any character (except newline) Quantifier: Between zero and unlimited times, as few times as possible, expanding as needed [lazy] (?=>) Positive Lookahead - Assert that the regex below can be matched > matches the character > literally