这是我的正则表达式
[a-zA-Z0-9][a-zA-Z0-9-]{0,61}\.[A-Za-z0-9]{1,23}
正确匹配域
例如:youtube.com
,google.com
等
虽然在存在子域时无法与域匹配。
例如。 www.youtube.com
,mail.google.com
如何更改它以仅匹配域而不匹配子域? 我是正则表达式的初学者,无论如何我不喜欢拆分字符串并匹配部分,而是使用正则表达式。
这是regexr
感谢
答案 0 :(得分:2)
我认为如果您将正则表达式锚定到输入字符串的末尾,它将执行您想要的操作。为此,请在表达式的末尾使用$
:
[a-zA-Z0-9][a-zA-Z0-9-]{0,61}\.[A-Za-z0-9]{1,23}$
这将匹配" goole.com"部分" mail.google.com"以及没有像" google.com"。
这样的子域名的字符串答案 1 :(得分:0)
我试图通过为电子邮件添加一些限制来修复你的正则表达式:
(?![\d\s.]+\b)\b([0-9a-z-]{2,}\.[0-9a-z-]{2,3}\.[0-9a-z-]{2,3}|[0-9a-z-]{2,}\.[0-9a-z-]{2,3})(?!@)\b
请参阅updated demo
我添加了一个i
不区分大小写的选项,以摆脱[A-Z]
并使用[a-z]
。