簡體   English   中英

正則表達式,用於字符串中最后兩個括號之間的所有大寫字母

[英]Regex for all capital letters between last 2 parentheses in string

我正在嘗試獲取字符串中最后兩個括號之間的所有大寫字母。 到目前為止,我已經嘗試過了:

/\(([A-Z])([^)]*)\)[^(]*$/g

例如:我不想要(這兩個字),我想要(這兩個)

但這給了我:

組1 T

集團2 hese Two

有人能幫我嗎?

提前致謝!

我認為,最短最簡單的解決方案是:

  • (?!.*\\() -負向超前-以后在任何地方都不會出現任何開頭括號(在任意其他字符之后),
  • (?=.*\\)) -正向前行-稍后某處必須出現右括號(在其他任意數量的字符之后),
  • [AZ] -捕獲大寫字母,不是作為捕獲組,而是作為“常規”匹配,
  • g具有全局選項。

總結一下:

/(?!.*\()(?=.*\))[A-Z]/g

您可以按如下所示獲取用JavaScript括號括起來的最后一個字符串之間的所有大寫字母:

/(?!.*\()(?=.*\))([A-Z])/g

第一部分(?!.*\\(.*\\))為負前瞻,它忽略所有開頭的括號,並在最后一個括號之后立即停止。 然后,我們執行正向查找,將所有內容匹配,直到遇到右括號為止。 然后我們匹配大寫字母。

 var s = "I don't want (These Words), I want (These Two)" var r = /.*\\(([^)]*)\\)/ var m = r.exec(s) console.log(m[1].match(/[AZ]/g)) 


說明

第一正則表達式

第一個正則表達式.*\\(([^)]*)\\).*提取最后一個括號的內容。

  • .*任意次數匹配任何字符
  • \\(從字面上匹配左括號
  • ([^)]*)捕獲除右括號外的任意字符任意次,進入捕獲組1
  • \\)從字面上匹配右括號
  • .*任意次數匹配任何字符

第二正則表達式

第二個正則表達式[AZ]匹配大寫字母

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM