我需要正则表达式在小数点后精确匹配 3 或 2 个字符,以便验证 www.xyz.com 而不是 xyz.Complete
问问题
6093 次
3 回答
2
我想你想要的是\b
我想不出使用单词边界断言没有合理覆盖的情况,\b
任何其他答案只需要\b
在最后(如果它总是.com
,那么你会使用.com\b
这意味着本质上是一个文字点 ( .
) 字符by com
, 后面的不是字母、数字或下划线。这是一个零宽度的断言,这意味着它不会捕获任何东西。要允许.net
or .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 回答