Привет, ребята, новичок в регулярном выражении. Я просто устал, действительно изучая все символы регулярных выражений и все. Мне нужно знать, в чем цель большего, чем символ в регулярном выражении, например.
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