我正在尝试创建一个正则表达式来过滤除某些网站之外的网址。
(?!(.*mysite))((www|http|.*com).*)
https://regex101.com/r/Su5zlB/9
我的斗争是排除某些网站。我已经尝试过了,但它似乎没有用。我希望它表现得像一个AND操作,所以如果第一个是假的,它不应该进入下一个条件。有任何想法吗?
答案 0 :(得分:0)
如果您只是要求网址中包含http
,www
和com
,而不是主机部分中的mysite
,那么您可以使用< / p>
preg_match('~^https?://(?:[^./]+\.)*(?!mysite)[^./]+\.com(?:/.*)?$~', $url)
请参阅regex demo
<强>详情:
^
- 字符串开头https?://
- http://
或https://
(?:[^./]+\.)*
- 零个或多个序列:
[^./]+
- 除.
和/
\.
- 一个文字点(?!mysite)[^./]+
- 除.
和/
以外的1个字符 - 最多.com
- 不等于mysite
\.com
- .com
字符串(?:/.*)?
- 1或0个序列
/
- 斜杠.*
- 除了换行符之外的任何0 +字符$
- 字符串结束。