Regex URL正则表达式匹配小数点后的精确3个字符

Regex URL正则表达式匹配小数点后的精确3个字符,regex,Regex,我要求正则表达式精确匹配小数点后的3或2个字符,以便它验证www.xyz.com而不是xyz.Complete严格回答您的问题 精确匹配小数点后的3或2个字符 要匹配结尾,请执行以下操作: \.[A-Za-z]{2,3}$ \转义,否则表示“任何字符”您忘记了字符串的开头和结尾检查(^,$)。使用以下命令: ^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$ 我想你想要的是\b 我想不出有哪一种情况没有合理地使用单词边界

我要求正则表达式精确匹配小数点后的3或2个字符,以便它验证www.xyz.com而不是xyz.Complete

严格回答您的问题

精确匹配小数点后的3或2个字符

要匹配结尾,请执行以下操作:

\.[A-Za-z]{2,3}$

\
转义
,否则表示“任何字符”

您忘记了字符串的开头和结尾检查(
^
$
)。使用以下命令:

^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$

我想你想要的是
\b

我想不出有哪一种情况没有合理地使用单词边界断言
\b
来涵盖(如果它总是
.com
,那么你应该使用
.com\b
,它本质上意味着一个文字点(
)字符后跟
com
,其中后面的内容不是字母、数字或下划线。这是一个零宽度断言,意味着它不会捕获任何内容。要同时允许
.net
.edu
,您可以使用
\.(com|edu|net)\b


大多数使用正则表达式的工具和语言都支持
\b
断言,但如果需要更精确(例如,您可能希望在
com
之后允许下划线),您的工具或语言编译器可能支持“lookaheads”,这也是零宽度断言。(在上面提到的例子中,你会使用类似于
\(com | net | edu | org | mil | museum)(?![a-zA-Z0-9])
的东西来禁止数字和大小写字母)

我用过这个表达“[a-zA-Z0-9\-\.+\(com | org | net | mil edu | com | org | net | mil edu |edu |edu |,以匹配,但它也匹配xyz.Complete和xyz.Completion文本,这不应该是这样的。关于.co.uk地址、或.info或.museum?列表可能会继续…当我试图在下面的回答中提供我认为您在您的案例中需要的信息时,您似乎正在尝试的操作将失败或在某些时候让您头痛要点-现实生活中的URL比您的表达式所能处理的复杂得多…附带说明,它将接受任何顶级域,而不是问题中指定的域。我不知道其意图,但需要记住。您能帮我修改这个表达式吗“[a-zA-Z0-9\\.]+\(com | org | net | mil | edu | com | org | net | mil edu)”所以它在小数点后只需要2到3个字符?用我给出的表达式替换整个
\(com|…
)表达式。对于我指定的要工作的表达式,顶级域必须位于字符串的末尾。我替换了(\(com|…)就像我们说的,但是现在它正好替换了以十进制开头的任何单词的3个字符,例如,如果单词是“…xyz.completion…”,那么它会显示“xyz.xxxpletion”,而这不应该是case@user1158326-不确定要替换什么,但如果使用@beerbajay的子表达式,现在应该是
^[a-zA-Z0-9\-\.]+\。[A-Za-z]{2,3}$
。它的结尾只匹配有效的2或3个字母。如果要修复它,请使用
^([A-Za-Z0-9\-\.]+\)([A-Za-z]{4,})$
检查$2中的错误,然后用您想要的任何内容替换匹配,如
$1com
这是假设
xyz.com/index.html
无效。其他通过的内容:
.com
-.com
-.net
。我最初使用过它,但不知道为什么,它仍然没有验证“www.google.com”或“www.google.com”“请访问我的网站@google.com“@user1158326您到底想验证什么?只是一个域名?或者任何网址?或者一个随机字符串中的域名?我想验证描述字段中的域名,现在我的描述是多行的和动态的,它可以包含中间某个地方的网站url,格式为www.xyz.com或类似文本“联系我们@xyz.com(扩展名可以是),如果http://没有被替换,没有问题,但url必须被替换