【问题标题】:Regular expression to match exact number of characters?正则表达式匹配确切的字符数?
【发布时间】:2013-01-13 10:37:29
【问题描述】:

我需要一个regular expression,它可以匹配任意三个大写字母,例如 AAA、ABC 或 DKE。但它不能匹配四个或更多,例如 AAAA 或 ABCDEF 或 aBBB。

我的解决方案:^([A-Z][A-Z][A-Z])$

问题

  1. 这是正确的吗?
  2. 有没有别的办法,只是为了学习?

【问题讨论】:

  • @owlstead,我做到了,事实上,我自己显然设法得到了正确的答案。我需要交叉检查以确保我没有错,因为我是正则表达式的新手。
  • 投了赞成票,但我会再次阅读有关重复的部分,因为您还应该了解limiting repetition

标签: regex


【解决方案1】:

你所拥有的是正确的,但这更简洁:

^[A-Z]{3}$

【讨论】:

  • 明白了。而这两个应该是唯一的两种方式,对吧?是的,我确定大写。
  • @DanielS - 有或没有捕获组。是的。
  • @owlstead - 这是一个非常有效的问题。 OP 显然正在学习,展示了他们正在尝试的内容,并寻求指导。这个问题的格式非常很好。为什么有人会关闭这个?
  • @owlstead,我也对 SO 进行了研究,但没有发现任何与我的问题相同的内容,因此我决定发布。
【解决方案2】:

您的解决方案是正确的,但您的正则表达式存在一些冗余。
类似的结果也可以从下面的正则表达式中得到:

^([A-Z]{3})$

{3} 表示[A-Z] 必须恰好出现 3 次。

【讨论】:

  • 谢谢。然而,这与前一个人的答案相同,所以我会选择他的答案作为公平的答案。
  • 是的,我在发布答案后也注意到了这一点。好吧,我只是想帮忙,所以如果它没有被标记为正确答案并不重要。仍然感谢您的评论:)
猜你喜欢
  • 2020-08-22
  • 1970-01-01
  • 2019-03-22
  • 2015-10-28
  • 2022-11-13
  • 2022-01-11
  • 2020-12-17
  • 1970-01-01
相关资源
最近更新 更多