Regex 正则表达式选择性匹配

Regex 正则表达式选择性匹配,regex,Regex,假设有以下字符串: https://domain1.com https://domain2.com https://domain3.com https://testdomain.com https://domain4.com https://domain5.com random text 293928382 例如,如何仅匹配具有http的字符串,而排除包含testdomain的字符串?目前我有一个不包括testdomain ^((?!testdomain).)*$ 但是,我不知道如何

假设有以下字符串:

https://domain1.com
https://domain2.com    
https://domain3.com
https://testdomain.com
https://domain4.com
https://domain5.com
random text
293928382
例如,如何仅匹配具有
http
的字符串,而排除包含
testdomain
的字符串?目前我有一个不包括
testdomain

^((?!testdomain).)*$
但是,我不知道如何将
http
匹配部分与上述表达式结合起来。有人能帮我把上面的内容和匹配的
http
结合起来吗

目标是匹配:

https://domain1.com
https://domain2.com    
https://domain3.com
https://domain4.com
https://domain5.com

谢谢

您可以将此正则表达式与负lookaheadd一起使用:

^https?://(?!(?:www\.)?testdomain\.).+$

正则表达式详细信息:

  • ^https?://
    :在开始处匹配
    http://
    https://
  • (?!(?:www\)?testdomain\)
    :否定的前瞻性声明我们没有紧跟其后的
    www.testdomain.com
    testdomain.com
  • +$
    :匹配任意字符的1+

使用:
^https?:/(?!.*/(?:www\)?testdomain\)。+$
我在这里尝试了这个表达式:但它与我问题中的任何字符串都不匹配。更正;这将是
^https?:/(?!(?:www\)?testdomain\)。+$
请参阅演示:太好了,现在可以了!您能将此设置为答案吗?:)谢谢