簡體   English   中英

在字符串中的括號之間搜索內容

[英]Search for content between parenthesis in a string

我只想在()內查找文本,但indexOf返回完整鍵值

var str = "some textsome textsome text(texttext)some text"
var arrSplit = str.split(' ')
for(var i = 0; i < arrSplit.length; i++){
    if(arrSplit[i].indexOf('(') >= 0) {
        console.log(arrSplit[i])
    }
}

結果

文字(texttext)一些

我需要

(文字文字)

僅使用split()可以做到這一點(假設字符串中只有一個這樣的模式):

str.split('(')[1].split(')')[0]

..並使用RegEx:

str.match(/\([a-z]*\)/ig)        // returns array containing all matches

嘗試一個正則表達式

str.match(/\([A-Za-z]*\)/g); // will match all occurrences

您可以根據需要匹配的內容在[]添加更多部分。 例如,如果要包括數字,則為0-9 只需避免使用.* ,因為這會將"(test) nope! (test)"作為一個塊進行匹配。

本質上,此正則表達式的主旨是您希望括號之間的所有大寫/小寫字母都正確。 括號必須轉義(因此\\(而不是( ),因為括號表示正則表達式中的分組。

只需嘗試\\(.*?\\)RegEx )。

 var str = "some textsome textsome text(texttext)some text" str = str.match(/\\(.*?\\)/); console.log(str[0]); 

在您的實現中應用:

 var str = "some textsome textsome text(texttext)some text" var arrSplit = str.split(' ') for(var i = 0; i < arrSplit.length; i++){ if(arrSplit[i].indexOf('(') >= 0) { var res = arrSplit[i].match(/\\(.*?\\)/); console.log(res[0]) } } 

暫無
暫無

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

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