如何将Javascript正则表达式转换为PHP正则表达式?

如何将Javascript正则表达式转换为PHP正则表达式?,javascript,php,regex,Javascript,Php,Regex,我有一个JavaScript正则表达式,如下所示 /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-]*)?\??(?:[\-\+=&;%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g 我需要在PHP中使用它,所以我需要这个正则表达式的PHP版本

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

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

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

清理一下,如果没有//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)

前一个SO问题应该可以帮助您找到答案:[[1]:我认为在PHP中也是一样的,没有什么不同。它不是一个有效的PHP正则表达式。除了不必要的标志外,它在PHP中基本上是有效的。谷歌搜索您收到的错误消息,但忘记将其包含在您的问题中。它过滤给定文本中的URL,而不是验证电子邮件。