Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Javascript 用于匹配URL的正则表达式以子域开头,但不以“";www";_Javascript_Regex - Fatal编程技术网

Javascript 用于匹配URL的正则表达式以子域开头,但不以“";www";

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

我有一组可能的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,因此结果集应该是:

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))