2017-04-25 47 views
-4

我想使用正则表达式来确保有至少两个大写字符在一个字符串中,在任何位置,一起或不是。正则表达式,一个字符串中的两个大写字符

下面给出了我两个在一起:

([A-Z]){2} 

环境 - 经典ASP VB。

+4

简单的答案:'[A-Z]。* [A-Z]'。 [在这里说明](https://regex101.com/r/KmQnrE/1) – ClasG

+0

这有效,谢谢你的帮助。虽然这是一个评论,但不是答案,所以我不能将其标记为解决方案。我应该将下面的标记标记为解决方案吗?再次感谢。 – Boomfelled

回答

1

您可以使用简单的regex

[A-Z].*[A-Z] 

它匹配大写字母开头,后跟任意数量的任何东西(除换行符),而另一个大写字母。

如果您需要它允许在字母之间换行,则必须设置单行标志。如果您使用的是JavaScript(在提出与正则表达式相关的问题时,U应始终包含flavor/language-tag),但它没有这种可能性。然后,Wiktor S在对另一个答案的评论中提出的解决方案应该可行。

2

[A-Z].*[A-Z]

A到Z,到Z再次之间,任何符号

更新

由于Wiktor的注释中提到:

此正则表达式将检查2一行中的字母(在大多数正则表达式中),而不是字符串。

所以

[A-Z][^A-Z]*[A-Z]

该做的事(在大多数的正则表达式的味道/工具)

+0

这个正则表达式会检查*行*上的2个字母(在大多数正则表达式中),而不是*字符串*。 –

+0

。*([A-Z])。*([A-Z])。*然后? – bumbeishvili

+1

否,'[A-Z] [^ A-Z] * [A-Z]'。只有部分匹配是可能的。即使这种表达可能会失败,在一些口味/工具。这个问题缺乏一个重要的细节:使用正则表达式的地方。 –

0

我相信你要找的是这样的:

.*([A-Z]).*([A-Z]).* 

分段成片段即:

.*  //Any number of characters (including zero) 
([A-Z]) //A capital letter 
.*  //Any number of characters (including zero) 
([A-Z]) //A second capital letter 
.*  //Any number of characters (including zero) 
+0

。*在边上是多余的 – bumbeishvili

+0

难道它不匹配大写字母和它们之间的字符没有(例如:http://www.regextester.com /?FAM = 97470)?如果OP想要它匹配整个字符串,我通常会包含它们,虽然我不熟悉ASP VB,所以我可能是这个用例的错误。 – teaguehopkins

相关问题