正则表达式验证首字母缩写

时间:2010-06-16 09:50:26

标签: regex

我正在寻找一个正则表达式来验证首字母。我希望它允许的唯一格式是:

(大写后跟一段时间),一次或多次

有效示例:

一个。
A.B.
A.B.C.

无效的例子:

一个。
一个
一个
A B
A B C
AB
ABC

使用The Regulator和一些网站我发现了以下正则表达式,但它只允许一个上(或下!)个字符后跟一个句点:

^[A-Z][/.]$

基本上我只需要知道如何强制大写字符,以及我如何重复验证以允许更多的大写字符后面出现一个句点。

3 个答案:

答案 0 :(得分:5)

你几乎是正确的:+说“一个或多个事件”而且是\.,而不是/.

将其包含在()中表示它是一个群组。

^([A-Z]\.)+$

答案 1 :(得分:4)

这是一个快速的正则表达课:

  • a只匹配一个a
  • a+与一行中的一个或多个a匹配
  • ab匹配a后跟b
  • ab+匹配a后跟一个或多个b连续
  • (ab)+匹配a后跟b
  • 中的一个或多个

所以在这种情况下,这样的事情应该有效:

^([A-Z][.])+$

参考


变体形式

您也可以使用以下内容:

^(?:[A-Z]\.)+$

(?:pattern)是非捕获组。 \.是您匹配文字.的方式,因为否则它是一个元字符,表示“(几乎)任何字符”。

参考


更多变化

既然你说你匹配姓名缩写,你可能想对合理的重复次数施加一些限制。

正则表达式中有限的重复语法是这样的:

^(?:[A-Z]\.){1,10}$

这将匹配至少一个,但最多只能匹配10个字母和句点重复(see on rubular.com)。

答案 2 :(得分:3)

你想要的正则表达式是这样的:

^(?:[A-Z]\.)+$

?:将该组标记为未捕获

然而,

区分大小写是一种在每种语言中处理不同的标志。但在大多数实现中,它默认是活动的