我有这个正则表达式:
/\A((\{YY\})?[-_]*(\{MM\})?[-_]*(\{DD\})?[-_]*(\{N{4,8}\})|[A-Za-z])*\z/
匹配以下值:
{YY}-{MM}-{DD}-{NNNN}
有没有办法将{N
和N}
中包含的子串数限制为1,以便以下字符串无效?
{YY}-{MM}-{DD}-{NNNN}-{NNNNNN}
感谢您的帮助。
答案 0 :(得分:1)
(\{N{4,8}\})|[A-Za-z_.#-])*
最后的明星说:捕获零或更多此{NNN ... N}捕捉表达。
(\{N{4,8}\})|[A-Za-z_.#-]){,1}
{,1}
表示:最大1x前一个表达式(由( )
捕获)。或者当Biffen重新制作时:?
为{,1}
的缩写。
/\A((\{YY\})?[-_]*(\{MM\})?[-_]*(\{DD\})?[-_]*(\{N{4,8}\})|[A-Za-z])?\z/
所以这应该只捕获{YY}-{MM}-{DD}-{NNNN}
但不捕获
{YY}-{MM}-{DD}-{NNNN}-{NNNNNN}
答案 1 :(得分:0)
好的,我用以下正则表达式解决了我的问题:
/\A([A-Za-z_-]*(\{YY(YY)?\})?[_-]*(\{MM\})?[_-]*(\{DD\})?[_-]*\{N{4,8}\}[A-Za-z_-]*){1}\z/