允许Az,0-9和中间潇洒的正则表达式,永远不会结束?
我正在努力创建一个满足以下条件的ruby正则表达式:
支持的:
- AZ,az,0-9,在中间破折号,但从不以破折号开始或结束。
- 至少5个,不超过500个字符
到目前为止我有:
[0-9a-z]{5,500}
有关如何更新以符合上述标准的任何建议?
谢谢
这应该工作:
[0-9A-Za-z][0-9A-Za-z-]{3,498}[0-9A-Za-z]
[A-Za-z\d][-A-Za-z\d]{3,498}[A-Za-z\d]
如果你愿意将_
作为一封信来对待,那就更简单了:
\w[-\w]{3,498}\w
干得好:
/^[0-9A-Za-z][0-9A-Za-z\-]{3,498}[0-9A-Za-z]$/
或者如果你想让开头和结尾只有0-9,AZ,az(而不是非破折号)那么:
说明:
第一个^匹配字符串的开头。
下一个[]匹配AZ,az,0-9
下一个[]匹配AZ,az,0-9,破折号的3到498个字符。 请注意,我们匹配3到498个字符,因为我们在开头匹配一个字符,在最后匹配一个字符。
下一个[^]再次是AZ,az,0-9。
最后我们将$匹配为字符串的结尾。
这假设总是破折号或永远破折号。 它还假设在字母数字字符之间只允许一个破折号。 这是我能用手去限制字符而不是字符串实例数的唯一方法。
(([0-9a-zA-Z]{4,499})|([0-9a-zA-Z][\d]?){2,249})[0-9a-zA-Z]
假设允许的相邻破折号数量没有限制,这将起作用:
[0-9a-zA-Z][0-9a-zA-Z\d]{3,498}[0-9a-zA-Z]
- 如何解码ruby中的Rijndael(用VB.net编码)
- Ruby on Rails 4 – simple_form多选输入
- Rails 4.模型中的国家validation
- 即使在force_encoding之后,Rails / Ruby也会在UTF-8中无效字节序列
- Mongoid和ActiveRecord关系:未定义的方法`quoted_table_name’
- 从python的str字节序列中获取unicode
- Unicorn无法写pid文件
- RoR – SessionsController中的ArgumentError#创建错误的参数数量(1表示2)
- 如何在启动时自动创建resque worker?