正则表达式中的大于和小于符号

时间:2014-01-11 14:55:54

标签: php regex

嘿,伙计们对正则表达式不熟悉。我真的很厌倦真正研究所有的正则表达式charatcer和所有..我需要知道正则表达式中的大于符号的目的是什么。

preg_match('/(?<=<).*?(?=>)/', 'sadfas<email@email.com>', $email);

请告诉我在正则表达式中使用大于symbolo和小于symbol的符号。

任何帮助都将非常感谢.. :)

2 个答案:

答案 0 :(得分:10)

大于号只会匹配目标字符串末尾的文字>

小于符号并非如此简单。首先让我们回顾一下环视语法:

模式(?<={pattern})是一个正面的后置断言,它测试当前匹配的字符串是否前面跟一个匹配{pattern}的字符串。

模式(?={pattern})是一个积极的先行断言,它测试当前匹配的字符串后面跟着匹配{pattern}的字符串。

所以打破你的表达

  • (?<=<)断言当前匹配的字符串前面有文字<
  • .*?匹配任何零次或多次,懒洋洋地
  • (?=>)断言比当前匹配的字符串后跟文字>

将所有模式放在一起将从您提供的输入字符串中提取email@email.com

答案 1 :(得分:2)

您的正则表达式使用外观来捕获<>个字符之间的电子邮件地址。在您的示例输入中,它会捕获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

在线演示:http://regex101.com/r/yH6tY8