[英]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.