2017-04-25 44 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

相關問題