正则表达式匹配捕获域名

时间:2014-07-14 06:40:43

标签: regex vb.net url

您好我将使用以下格式的网址:

所有这些都必须捕获并返回域名 youtube

我尝试过使用

(http://|https://)?(www.)(.?*)(.com|.org|.info|.org|.net|.mobi)

但它显示错误为regex parsing nested quantifier

请帮帮我

3 个答案:

答案 0 :(得分:2)

如果您使用的是您知道的格式,则可以使用此正则表达式从组1中检索匹配项:

^(?:https?://)?(?:www\.)?([^.]+)

在VB.NET中:

Dim ResultString As String
Try
    ResultString = Regex.Match(SubjectString, "^(?:https?://)?(?:www\.)?([^.]+)", RegexOptions.Multiline).Groups(1).Value
Catch ex As ArgumentException
    'Syntax error in the regular expression
End Try

答案 1 :(得分:1)

(.?*)应为(.*?) - 这是您错误的来源。

此外,请记住转义点,除非您希望它与任何字符匹配。

由于www.部分是可选的,因此您还需要向该组添加?量词。

答案 2 :(得分:0)

您可以尝试使用以下正则表达式从上述网址获取域名youtube

^(?:https?:\/\/)?(?:www\.)?([^.]*)(?=(?:\.com|\.org|\.info|\.net|\.mobi)).*$

DEMO

确保域名必须后跟.com.info.org.net.mobi