【问题标题】:PHP - Perl compatible regexp [closed]PHP - Perl 兼容的正则表达式 [关闭]
【发布时间】:2012-04-20 16:59:30
【问题描述】:

如何转换这个正则表达式

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

来自这个网站:http://www.regular-expressions.info/email.html

在 FILTER_VALIDATE_REGEXP 下的 filter_var 函数中转换成 PHP 所需的 Perl 兼容正则表达式?

如果我按原样将其添加到选项中,则会收到此错误: filter_var() [function.filter-var]: 未知修饰符 '+' in ...

【问题讨论】:

  • 如果那些投反对票的人能解释一下自己,我会很高兴,这样我就不会再犯同样的错误了。

标签: php regex validation filter email-validation


【解决方案1】:

您需要用delimiter 包装表达式(/ 最常用):

/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/

【讨论】:

  • 并在正则表达式正文中转义所有出现的所述分隔符。
  • 你真的试过那个正则表达式吗?
  • 这行得通,谢谢,转义是必要的,DCoder 是对的。
  • @DCoder:我的错误,可以发誓这不是必需的。感谢您的提醒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多