繁体   English   中英

正则表达式匹配“ AAAA:AAA”模式

[英]Regex to match “AAAA:AAA” pattern

字符串必须以3或4个字母(而不是数字)开头,并且在这些字母后应加上“:”符号,并且在冒号之后应再有三个字符,例如AAA 例如, AAAA:AAAAAA:AAA

我已经开始构建它了,但是正则表达式对我来说太痛苦了,有人可以帮助我吗?

这是我现在所拥有的:

^[a-zA-Z]{3,4}(:)$

您的正则表达式几乎已经存在:您需要添加[a-zA-Z]{3} 我更喜欢Ruby中[[:alpha:]] POSIX类来匹配字母。

/[[:alpha:]]/ - 字母字符

POSIX括号表达式也类似于字符类。 它们提供了上述内容的可移植替代方案, 并具有包含非ASCII字符的附加好处。

因此,这是一个可能的正则表达式:

\A[[:alpha:]]{3,4}:[[:alpha:]]{3}\z

观看演示

正则表达式匹配:

  • \\A字符串的开头(在RoR中,您必须使用\\A而不是^ ,否则会出现错误)
  • [[:alpha:]]{3,4} -3或4个字母
  • : -文字:
  • [[:alpha:]]{3} -3个字母
  • \\z字符串结尾(在RoR中,您必须使用\\z而不是$ ,否则会出错)

要仅允许AAAAAAA ,您需要引入一个可选的( ?量词)非捕获组( (?:...)构造):

\A[[:alpha:]]{3,4}(?::[[:alpha:]]{3})?\z
                  ^^^               ^^      

观看另一个演示

尝试使用它(如果必须将方言中的正则表达式作为字符串传递,则引号)

"^[a-zA-Z]{3,4}:[a-zA-Z]{3}$"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM