3

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

4

3 回答 3

2

我想你想要的是\b

我想不出使用单词边界断言没有合理覆盖的情况,\b任何其他答案只需要\b在最后(如果它总是.com,那么你会使用.com\b这意味着本质上是一个文字点 ( .) 字符by com, 后面的不是字母、数字或下划线。这是一个零宽度的断言,这意味着它不会捕获任何东西。要允许.netor .edu,您可以使用\.(com|edu|net)\b

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

于 2012-04-26T16:57:36.317 回答
1

严格回答你的问题

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

只匹配结尾:

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

\转义,.否则意味着“任何字符”

于 2012-04-26T14:39:30.300 回答
1

您忘记了字符串开始和结束检查 ( ^, $)。用这个:

^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$
于 2012-04-26T14:40:39.080 回答