簡體   English   中英

正則表達式查找大括號之間的最后一次出現

[英]Regex to find last occurrence between the braces

我需要在 JavaScript/ES6 中使用正則表達式來查找字符串中最后出現的括號之間的值

例如,如果這些是示例字符串:

  • “一些樣本字符串(值 1)(更多)某物(值 2)”
  • “一些樣本字符串(Val One),一些東西(Val Two)”
  • “一些樣本字符串 (VOne) - 一些東西 (Vtwo)”

正則表達式應分別從上述字符串返回以下值

  • “價值 2”
  • “瓦爾二”
  • “V二”

str.match(/.*\((.*)\).*$/)[1]

適用於您的用例。

限制:這不適用於具有嵌套小括號的字符串。 例如。 “(一些樣本字符串(VOne) - 某事(VTwo))”

這是一個正則表達式替換所有方法。 我們可以匹配模式^.*\((.*?)\).*$ ,它將消耗從輸入開始到但不包括最終(...)項的所有內容。 然后我們捕獲該術語的內容並打印到控制台。

 var input = "Some Sample String (Value 1) (more) Something (Value 2)"; var last = input.match(/\(.*\)/)? input.replace(/^.*\((.*?)\).*$/, "$1"): "NO MATCH"; console.log(last);

請注意,我對match進行了初步檢查,以確保該術語至少有一個(...)術語。 如果是這樣,那么我們采用正則表達式替換,否則我們分配NO MATCH

暫無
暫無

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

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