您好我将使用以下格式的网址:
所有这些都必须捕获并返回域名 youtube
。
我尝试过使用
(http://|https://)?(www.)(.?*)(.com|.org|.info|.org|.net|.mobi)
但它显示错误为regex parsing nested quantifier
。
请帮帮我
答案 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)).*$
确保域名必须后跟.com
或.info
或.org
或.net
或.mobi
。