Javascript 用于匹配URL的正则表达式以子域开头,但不以“";www";
我有一组可能的URL:Javascript 用于匹配URL的正则表达式以子域开头,但不以“";www";,javascript,regex,Javascript,Regex,我有一组可能的URL: www.example.com www.example.user.dev subdomain.example.com subdomain.example.user.dev www.en.example.com www.en.example.user.dev subdomain.en.example.com subdomain.en.example.user.dev 子域可以是任何单词。 我需要一个正则表达式来查找所有不以www开头的URL,因此结果集应该是: subdo
www.example.com
www.example.user.dev
subdomain.example.com
subdomain.example.user.dev
www.en.example.com
www.en.example.user.dev
subdomain.en.example.com
subdomain.en.example.user.dev
子域
可以是任何单词。
我需要一个正则表达式来查找所有不以www
开头的URL,因此结果集应该是:
subdomain.example.com
subdomain.example.user.dev
subdomain.en.example.com
subdomain.en.example.user.dev
我有regex/[a-z]+\.(en\.|)example\.(com |[a-z]+\.dev)/I
,我需要将其修改为仅以mathc开头的URL,而不以www
开头。是否可以只使用正则表达式进行求解,还是需要在代码中编写一些逻辑
UPD:
正则表达式/\b(?!www\b)[a-z]+\.(en\.|)示例\.(com |[a-z]+\.dev)/i
适用于不包含.en
部分的URL,但在包含.en
的URL上失败
^(?!www\.)((([a-z]{4,})|([a-z]{2}))\.(en\.|)example\.(com|[a-z]+\.dev))
如果您只有一个这样的URL列表,您可以使用类似
的内容检查每个项目!str.StartsWith(“www.”
,并在以后执行您需要的操作。检查字符串是否以www.
开头的正则表达式是^(?!www\)
这是一种可能的方法,但如果可能,我希望用正则表达式检查您使用的正则表达式是什么类型的?(你用什么语言做这件事?)是javascript。我需要知道现在打开什么url来启动或不启动一些实用程序函数。JS:如果(!/^www\./.test(str)){…}
。在我看来,你把事情搞得太复杂了。您可以使用2个小的可读正则表达式,而不是将所有正则表达式打包成一个不理解的模式。谢谢,但如果子域
小于4个符号,则该操作将失败。我的子域可能有2个或更多符号。如果我将{4,}
部分更改为{2,}
它开始通过en.example.com
部分匹配www.en.example.com
。这不是预期的行为。我和你一起编辑了我的帖子,关于子域的要求可以用两个字母写。我测试了你的答案,它似乎没有那么复杂,正则表达式就像一个符咒:^(?www\)(([a-z]{2,})renthome\(en\。[a-z]+\.dev))
谢谢你,你把我引向正确的方向!我想你可以编辑我版本的答案,以帮助人们在需要时更快地找到答案,甚至更简单<代码>^(?www\.)([a-z]+)\(en\.|)renthome\(ru |[a-z]+\.dev))