[英]Regex to match “AAAA:AAA” pattern
字符串必须以3或4个字母(而不是数字)开头,并且在这些字母后应加上“:”符号,并且在冒号之后应再有三个字符,例如AAA
。 例如, AAAA:AAA
或AAA: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
而不是$
,否则会出错) 要仅允许AAA
或AAAA
,您需要引入一个可选的( ?
量词)非捕获组( (?:...)
构造):
\A[[:alpha:]]{3,4}(?::[[:alpha:]]{3})?\z
^^^ ^^
观看另一个演示
尝试使用它(如果必须将方言中的正则表达式作为字符串传递,则引号)
"^[a-zA-Z]{3,4}:[a-zA-Z]{3}$"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.