PHP正则表达式-如何统一匹配域?
我的web应用程序中有两个可能的URL-sPHP正则表达式-如何统一匹配域?,php,regex,Php,Regex,我的web应用程序中有两个可能的URL-s www.domain.com www.user.domain.com 现在我需要两个php正则表达式,它们将唯一地匹配每个URL 我写了两个正则表达式: 1. (www\.)?(domain)(\.)(com) 2. (www\.)?([a-z]+)(\.)(domain)(\.)(com) 第一个将匹配第一个URL。 第二个将匹配第二个URL,但它也将匹配第一个URL。这就是问题所在 如何编写正则表达式来统一匹配每个URL 这是一个链接,你可以看到
1. (www\.)?(domain)(\.)(com)
2. (www\.)?([a-z]+)(\.)(domain)(\.)(com)
第一个将匹配第一个URL。
第二个将匹配第二个URL,但它也将匹配第一个URL。这就是问题所在
如何编写正则表达式来统一匹配每个URL
这是一个链接,你可以看到我的问题。
链接:尝试:
^(((www\.)([a-z]+))|(?!(www\.))([a-z]+))(\.)(domain)(\.)(com)$
尝试:
两者是否都有可选的
www
?user.domain.com
也能工作吗?为什么不在
上拆分,看看结果数组中的一个是否包含在另一个数组中?@d3v3us是的,这两个数组在有www.So(www\)或没有www.So(www\)的情况下都能工作?我想一开始就应该在那里。但是是的,他们必须有可选的www.@jackmaney-我真的不明白。我对正则表达式还很熟悉。您需要使用preg\u split(/\./)拆分URL吗?你能给出一些代码说明为什么你不能让2号同时处理这两个问题吗?我猜想,如果你想根据它是哪一个做一些不同的事情,那么正确地排序你的条件句,并使用else
就行了。两者都有可选的www
?user.domain.com
也能工作吗?为什么不在
上拆分,看看结果数组中的一个是否包含在另一个数组中?@d3v3us是的,这两个数组在有www.So(www\)或没有www.So(www\)的情况下都能工作?我想一开始就应该在那里。但是是的,他们必须有可选的www.@jackmaney-我真的不明白。我对正则表达式还很熟悉。您需要使用preg\u split(/\./)拆分URL吗?你能给出一些代码说明为什么你不能让2号同时处理这两个问题吗?我猜想,如果你想根据它是哪一个做一些不同的事情,那么正确地排序你的条件,并使用else
就行了。这会行得通的,尽管这对于你正在尝试做的事情来说有点难看,并且开始摆脱使用正则表达式的能力。在这一点上,我有这样的东西,我会评估做什么像@Jack建议在评论的问题,并分割域和检查其部分。这个正则表达式使用10组!这将起作用,尽管它对于您正在尝试做的事情来说有点难看,并且开始摆脱使用正则表达式的能力。在这一点上,我有这样的东西,我会评估做什么像@Jack建议在评论的问题,并分割域和检查其部分。这个正则表达式使用10组!