Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Regex将匹配URL,但某些使用“前瞻”的网站除外_Php_Regex_Regex Lookarounds - Fatal编程技术网

Php Regex将匹配URL,但某些使用“前瞻”的网站除外

Php Regex将匹配URL,但某些使用“前瞻”的网站除外,php,regex,regex-lookarounds,Php,Regex,Regex Lookarounds,我正在尝试创建一个正则表达式来过滤除某些网站之外的url (?!(.*mysite))((www|http|.*com).*) 我的斗争是排除某些网站。我试过向前看,但似乎不起作用。我希望它的行为类似于AND操作,所以如果第一个条件为false,它就不应该进入下一个条件。有什么想法吗 如果您只想要求URL中包含http、www和com,而不是主机部分中的mysite,那么您可以使用 preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.c

我正在尝试创建一个正则表达式来过滤除某些网站之外的url

(?!(.*mysite))((www|http|.*com).*)


我的斗争是排除某些网站。我试过向前看,但似乎不起作用。我希望它的行为类似于AND操作,所以如果第一个条件为false,它就不应该进入下一个条件。有什么想法吗

如果您只想要求URL中包含
http
www
com
,而不是主机部分中的
mysite
,那么您可以使用

preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.com(?:‌​/.*)?$~', $url)

详细信息

  • ^
    -字符串的开头
  • https?://
    -
    http://
    https://
  • (?:[^./]+\)*
    -零个或多个以下序列:
    • [^./]+
      -1+字符,而不是
      /
    • \。
      -文字点
  • (?!mysite)[^./]+
    -1+字符,而不包括
    /
    ,直到
    .com
    -不等于
    mysite
  • \.com
    -a
    .com
    字符串
  • (?)‌​/.*)?-1或0序列的
    
    • /
      -斜杠
    • *
      -除换行符以外的任何0+字符
  • $
    -字符串结束

如果您只想要求URL中包含
http
www
com
,而不是主机部分中的
mysite
,那么您可以使用

preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.com(?:‌​/.*)?$~', $url)

详细信息

  • ^
    -字符串的开头
  • https?://
    -
    http://
    https://
  • (?:[^./]+\)*
    -零个或多个以下序列:
    • [^./]+
      -1+字符,而不是
      /
    • \。
      -文字点
  • (?!mysite)[^./]+
    -1+字符,而不包括
    /
    ,直到
    .com
    -不等于
    mysite
  • \.com
    -a
    .com
    字符串
  • (?)‌​/.*)?-1或0序列的
    
    • /
      -斜杠
    • *
      -除换行符以外的任何0+字符
  • $
    -字符串结束

你能添加一个例子吗?我不太清楚你的“和”行为
^(https?:\/\/)(?!mysite)([-\w]+\)(?!mysite).*$
此模式有助于在没有
mysite
的情况下计算url。但它仍然无法获取案例
sdsd的链接https://www.youtube.com
。我希望你能从中找到一些有用的东西。为什么不简单地排除那些不应该与regex外部匹配的网站集呢?
如果X在Y中,那么跳过
什么要求是什么?网站不应包含任何地方,或仅在
[协议]内的
mysite
://mysite.com
?那些
www
http
.com
?如果你只是想要求URL中包含
http
www
com
,而不是
mysite
主机,那么你似乎可以使用@ti7,我是通过编程实现的。我只是想知道是否有一个可以解决我问题的正则表达式你能添加一个例子吗?我不太清楚你的“和”行为
^(https?:\/\/)(?!mysite)([-\w]+\)(?!mysite).*$
此模式有助于在没有
mysite
的情况下计算url。但它仍然无法获取案例
sdsd的链接https://www.youtube.com
。我希望你能从中找到一些有用的东西。为什么不简单地排除那些不应该与regex外部匹配的网站集呢?
如果X在Y中,那么跳过
什么要求是什么?网站不应包含任何地方,或仅在
[协议]内的
mysite
://mysite.com
?那些
www
http
.com
?如果你只是想要求URL中包含
http
www
com
,而不是
mysite
主机,那么你似乎可以使用@ti7,我是通过编程实现的。我只是想知道是否有一个单一的正则表达式可以解决我的问题,它很适合你。如果我的答案对你有用的话,请考虑一下投票。很高兴它对你有用。如果我的答案证明对你有用的话,请考虑一下投票。