【问题标题】:How to conver Javascript regular expression to PHP regular expression?如何将 Javascript 正则表达式转换为 PHP 正则表达式?
【发布时间】:2013-12-27 22:13:38
【问题描述】:

我有一个 JavaScript 的正则表达式,如下所示

/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g

我需要在 PHP 中使用它,所以我需要这个正则表达式的 PHP 版本,请问有什么想法吗?

【问题讨论】:

  • 上一个 SO 问题应该可以帮助您找到方法:[stackoverflow.com/questions/2621583/… [1]:stackoverflow.com/questions/2621583/…
  • 我认为在 PHP 中会是一样的,没有什么不同。
  • 它不是一个有效的 PHP 正则表达式。
  • 它在 PHP 中大部分是有效的,除了不必要的标志。谷歌您收到但忘记包含在您的问题中的错误消息。
  • 它过滤给定文本中的 URL,而不是验证电子邮件。

标签: javascript php regex


【解决方案1】:

清理一下,它可能看起来像这样(没有 //g 修饰符)

 # '~((([A-Za-z]{3,9}:(?://)?)(?:[-;:&=+$,\w]+@)?[A-Za-z0-9.-]+|(?:www\.|[-;:&=+$,w]+@)[A-Za-z0-9.-]+)((?:/[+\~%/.\w-]*)?\??(?:[-+=&;%@.\w]*)\#?(?:[.!/\\\\\w]*))?)~'

 (                                          # (1 start)
      (                                          # (2 start)
           (                                          # (3 start)
                [A-Za-z]{3,9} :
                (?: // )?
           )                                          # (3 end)
           (?: [-;:&=+$,\w]+ @ )?
           [A-Za-z0-9.-]+ 
        |  (?: www\. | [-;:&=+$,w]+ @ )
           [A-Za-z0-9.-]+ 
      )                                          # (2 end)
      (                                          # (4 start)
           (?: / [+\~%/.\w-]* )?
           \??
           (?: [-+=&;%@.\w]* )
           \#?
           (?: [.!/\\\w]* )
      )?                                         # (4 end)
 )                                          # (1 end)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2019-05-11
    相关资源
    最近更新 更多