^ Start of string
(?!^\.) Negative lookahead: Do not match if the string starts with a period
(?!.*\.$) Negative lookahead: Do not match if the string ends with a period
[a-zA-Z0-9._-]+ Match one or more Latin letters, digits, underscore, hyphen, or period symbols
$ End of string
3条答案
按热度按时间xwbd5t1u1#
图案:
解释:
测试:
kg7wmglp2#
匹配第一个字符,然后是任意数量的内部字符和最后一个字符的可选匹配。
/^[a-zA-Z0-9_-](?:[a-zA-Z0-9._-]*[a-zA-Z0-9_-])?$/
^
与字符串的开头匹配[a-zA-Z0-9_-]
匹配一个或多个拉丁字母、数字、下划线或减号[a-zA-Z0-9_.-]
匹配一个或多个拉丁字母、数字、下划线或减号以及点(?:[a-zA-Z0-9._-]*[a-zA-Z0-9_-])?
匹配零个或一个重复的非捕获组,该组包含任意数量的指定字符(包括点),后跟一个指定字符(不包括点)$
匹配字符串的结尾xu3bshqb3#
如果点只允许在中间,则可以将点夹在
[a-zA-Z0-9_-]
的。如果要允许点并排,请添加一个限定符:
\.+
https://regex101.com/r/BLTNib/1