Php Regex将匹配URL,但某些使用“前瞻”的网站除外
我正在尝试创建一个正则表达式来过滤除某些网站之外的urlPhp 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
(?!(.*mysite))((www|http|.*com).*)
我的斗争是排除某些网站。我试过向前看,但似乎不起作用。我希望它的行为类似于AND操作,所以如果第一个条件为false,它就不应该进入下一个条件。有什么想法吗 如果您只想要求URL中包含
http
、www
和com
,而不是主机部分中的mysite
,那么您可以使用
preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.com(?:/.*)?$~', $url)
见
详细信息:
-字符串的开头^
-https?://
或http://
https://
-零个或多个以下序列:(?:[^./]+\)*
-1+字符,而不是[^./]+
和/
-文字点\。
-1+字符,而不包括(?!mysite)[^./]+
和
,直到/
-不等于.com
mysite
-a\.com
字符串.com
(?)/.*)?代码>-1或0序列的
-斜杠/
-除换行符以外的任何0+字符*
-字符串结束$
http
、www
和com
,而不是主机部分中的mysite
,那么您可以使用
preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.com(?:/.*)?$~', $url)
见
详细信息:
-字符串的开头^
-https?://
或http://
https://
-零个或多个以下序列:(?:[^./]+\)*
-1+字符,而不是[^./]+
和/
-文字点\。
-1+字符,而不包括(?!mysite)[^./]+
和
,直到/
-不等于.com
mysite
-a\.com
字符串.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,我是通过编程实现的。我只是想知道是否有一个单一的正则表达式可以解决我的问题,它很适合你。如果我的答案对你有用的话,请考虑一下投票。很高兴它对你有用。如果我的答案证明对你有用的话,请考虑一下投票。