如何将复杂的正则表达式赋值给php变量

如何将复杂的正则表达式赋值给php变量,php,regex,Php,Regex,很久以来的第一个问题!我需要找到facebook页面请求(我使用graphi api请求页面的网站)返回的字符串中的任何和所有URL,并将该值放入一个数组中,随后在datatable js表中显示 无论如何,我遇到了一些问题,比如当我为datatable构建json数据时,它在某些情况下会中断:- 问题在于网站字段中存在错误字符/结构/空白等 无论如何,我找到了一个完美的正则表达式,可以用来查找该领域的所有网站(在报税表中可以列出多个网站) 正则表达式是 (?i)\b((?:[a-z][\w-

很久以来的第一个问题!我需要找到facebook页面请求(我使用graphi api请求页面的网站)返回的字符串中的任何和所有URL,并将该值放入一个数组中,随后在datatable js表中显示

无论如何,我遇到了一些问题,比如当我为datatable构建json数据时,它在某些情况下会中断:-

问题在于网站字段中存在错误字符/结构/空白等

无论如何,我找到了一个完美的正则表达式,可以用来查找该领域的所有网站(在报税表中可以列出多个网站)

正则表达式是

(?i)\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))
(a)以下两种::::[a-z[a-z[[[a-z[[a-a-z[[[w-[[w-[[w-[[[a-a-z[[a-a-z[[a-a-z[[a-z[[[w-[w-[[w-[w-[[[w-[[[w-[[[[[w-[[[[[C-z0-z0-10-9-9-9-9%[9%[9%[9%[9%]]]])))))))))以下以下以下以下以下以下两个::::::::::::)以下以下以下以下以下以下以下((((()))))两个:(:(:(:(:(::::::::::::::::::::::::::::::::::::::::::)))\]{};:“,«»””)) 当我尝试像preg_match_一样将它分配给一个php变量时,我做不到,因为它不会接受变量中的正则表达式字符串,因为它里面有引号

因此,我的问题是如何仅提取在“网站”字段中找到的URL,然后将其分配给变量,以便将其添加到数据表中

下面是一个失败的调用示例:-

我需要能够只返回网站,什么都没有

有什么想法吗

谢谢


Jonathan

此正则表达式专门用于解决此问题:

(?:https?:\/\/|www)[^"\s]+

如果不想处理所有这些引号转义,可以执行以下操作:

  • 将正则表达式保存到一个文件,例如,
    regex.txt
  • 将此文件读入变量并修剪:
    $regex=trim(文件获取内容(“regex.txt”);
  • 将其与
    preg_match()
    等一起使用

  • 因此,您真正的问题是:“如何将字符串分配给包含引号字符的变量?"? 请显示尝试执行此操作的代码行。谢谢。添加分隔符,转义引号-该正则表达式应该没有问题。并告诉数据源,如果他们想发布JSON数据,它应该是有效的JSON数据。我正在创建JSON文件,但有时facebook上有一个字段(网站),该字段中有多个网站,引号,奇怪的字符等),所以我试图从字段中提取有效的url,但我甚至不能将正则表达式(我知道它可以在正则表达式模拟器中测试)分配给一个变量,这样我就可以运行preg-match-all:-$myregis=“(?I)\b((?:[a-z][\w-]+:(?:\/{1,3}[a-z0-9%])www\d{0,3}[.]a-z0-9.\-]+|(([^\s()]+)*)+(?:([^\s()]+|([^\s()]+)*)[^\s`!([^\s()]+):“,«»””)”;“我想你指的是这样的值
    “www.trademediapromotion.com很快…很快!!!”
    “我说得对吗?”?