簡體   English   中英

匹配括號之間的所有內容

[英]match everything between brackets

我需要在兩個方括號之間匹配文本。 關於它的文章很多,但JavaScript不支持,因為它們都使用了后向功能。 案文如下

“ {代碼}-{說明}”

我需要代碼和描述與括號最匹配,這是我得到的

 /{([\s\S]*?)(?=})/g

給我留下“ {Code”和“ {Description”,然后我做一個子字符串。

那么...有沒有辦法在Javascript中進行后備功能類型?

用作:

input = '{Code} - {Description}';
matches = [], re = /{([\s\S]*?)(?=})/g;

while (match = re.exec(input)) matches.push(match[1]);

console.log(matches);
["Code", "Description"]

您可以嘗試以下正則表達式,

[^}{]+(?=})

碼:

> "{Code} - {Description}".match(/[^}{}]+(?=})/g)
[ 'Code', 'Description' ]

實際上,在這種情況下,解決方案非常簡單:

s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]

您是否嘗試過類似的操作,而無需先行或后行:

{([^}]*)}

您可能需要添加全局標志,但是它似乎可以在regex測試器中使用

真正的問題是您需要指定要捕獲的內容,這需要使用正則表達式中的捕獲組來完成。 括號內匹配的正則表達式部分將是該捕獲組返回的值。 因此,為了從結果中省略{} ,您只需要在括號內不包括那些即可。 但是,仍然需要在正則表達式中匹配它們。

您可以在此處查看如何獲取JavaScript中捕獲組的值。

暫無
暫無

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

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