gpt4 book ai didi

ruby - 匹配 "AAAA:AAA"模式的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:56 27 4
gpt4 key购买 nike

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

我正在开始构建它,但正则表达式对我来说太痛苦了,有人可以帮我解决这个问题吗?

这是我现在拥有的:

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

最佳答案

您的正则表达式就快完成了:您需要添加 [a-zA-Z]{3}。我更喜欢 [[:alpha:]] POSIX class in Ruby不过要匹配字母。

/[[:alpha:]]/ - Alphabetic character

POSIX bracket expressions are also similar to character classes. They provide a portable alternative to the above, with the added benefit that they encompass non-ASCII characters.

所以,这是一个可能的正则表达式:

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

参见 demo

正则表达式匹配:

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

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

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

参见 another demo

关于ruby - 匹配 "AAAA:AAA"模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com