我必须为特定字符串实现以下规则。
字段应填充,最多包含52个字母数字字符。允许四个特殊字符“:”,“。”,“ - ”,“_”。开头或结尾不允许使用特殊字符。
我尝试使用模式[0-9A-Za-z:。-_]来包含字母数字和4个特殊字符,但我不确定如何确保它们不会出现在字符串的开头或结尾。例如“Hello:123Howareyou”有效但“:hello58475howareu”无效。
这种模式不能帮助[0-9A-Za-z:.- ]包含字母数字和特殊字符和(^(:.- ))字符串的开头不应该以这些开头特殊字符和((:.- _)$)字符串的结尾不应该以这些特殊字符结尾。如何处理“开头或结尾不允许使用特殊字符”。这一部分。
感谢 PASH
答案 0 :(得分:0)
仅为开头和结尾添加字母数字的正则表达式:
^[0-9A-Za-z]+[0-9A-Za-z:.\-_][0-9A-Za-z]+$
或更短的版本
^[\w]+[\w:.\-_][\w]+$
答案 1 :(得分:0)
我会用:
^[a-zA-Z0-9][\w:.-]{0,50][a-zA-Z0-9]$
其中\w
与[a-zA-Z0-9_]
这将匹配长达52个字符且长度至少为2个字符的字符串。
如果您想匹配至少一个字符:
^[a-zA-Z0-9](?:[\w:.-]{0,50][a-zA-Z0-9])?$