在我的 Ruby on Rails 应用程序中,我需要一个接受以下值的正则表达式:
{DD}
{MM}
{YY}
{NN}
{NNN}
{NNNN}
{NNNNN}
{NNNNNN}
-
, _
,.
和#
我对正则表达式还是个新手,我想出了这个:
/\A[a-zA-Z._}{#-]*\z/
这已经很有效了,但是它也匹配不应被允许的字符串,例如:
}FOO
或者 {YYY}
有人可以帮忙吗?
您可以使用
/\A(?:\{(?:DD|MM|YY|N{2,6})\}|[A-Za-z_.#-])*\z/
\A
- 字符串锚点的开始(?:\{(?:DD|MM|YY|N{2,6})\}|[A-Za-z_.#-])*
-非捕获组((?:...)
仅对原子序列进行分组,不创建子匹配/子捕获)零次或多次出现:
\{(?:DD|MM|YY|N{2,6})\}
-a{
然后是DD
, 或MM
, YY
, 2 到 6N
后跟}
|
- 或者[A-Za-z_.#-]
- 集合中的 1 个字符(ASCII 字母、_
、.
、#
或-
)\z
- 字符串的结尾。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句