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

Geo*_*rge 4 regex

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

(一个资本,然后是一个时期),那一次或多次

有效示例:

A.
AB
ABC

示例无效:

一个.
一个

AB
ABC
AB
ABC

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

^[A-Z][/.]$
Run Code Online (Sandbox Code Playgroud)

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

sim*_*sjo 5

你差不多正确:+说"一个或多个事件" \.,而不是/.

包装它()表示它是一个组.

^([A-Z]\.)+$
Run Code Online (Sandbox Code Playgroud)


pol*_*nts 5

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

  • a完全匹配一个a
  • a+a匹配连续一个或多个
  • ab匹配a后跟b
  • ab+连续匹配a一个或多个b
  • (ab)+匹配一个或多个a后跟b

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

^([A-Z][.])+$
Run Code Online (Sandbox Code Playgroud)

参考


变化

你也可以使用这样的东西:

^(?:[A-Z]\.)+$
Run Code Online (Sandbox Code Playgroud)

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

参考


更多变化

既然您说过要匹配首字母缩写,您可能需要对合理的重复次数施加一些限制。

正则表达式中的有限重复语法如下所示:

^(?:[A-Z]\.){1,10}$
Run Code Online (Sandbox Code Playgroud)

这将匹配至少一个但最多 10 个字母和句点重复(请参阅 rubular.com)。

  • @simen:您不需要在字符类定义中转义“.”。`[.]` 是一种字符类定义,仅匹配一个字符(句点)。有时我更喜欢“[.]”而不是“\.”(或某些语言的字符串文字中的“\\.”),但这只是我的情况。 (3认同)