簡體   English   中英

如何刪除雙括號中的字符串?

[英]How to remove string in double brackets?

我想知道如何刪除雙括號和包括括號中的字符串。 這是一個例子

var str="(C84) [Yayui (shirogisu)] 1 Day with the Commodore";
var n = str.replace(/\s*\(.*?\)\s*/g, '')
alert(n);

到目前為止,它只刪除了一個括號,而沒有刪除一個在另一個括號內的括號。 最終輸出應如下所示:

1 Day with the Commodore

如何刪除任何類型的括號中的字符串,例如{,},[,],(,)實時版本: http : //jsfiddle.net/aPa25/

不確定雙括號的含義,但是要刪除括號和方括號中的所有內容,您可以使用

str.replace(/\s*\(.*?\)\s*/g, '').replace(/\s*\[.*\]\s*/g, '')

第一個replace刪除括號中的所有內容,第二個replace刪除方括號中的所有內容。

另外,如果您知道輸入的形式總是這樣,即括號部分后跟方括號部分,您可以這樣做:

str.replace(/^\s*\(\w+\)\s*\[.*\]\s*/, '')

它的通用性較低,但如果該假設為真,則可能會更健壯。

編輯:鑒於以后您想要保留的文本中可能還有其他括號和方括號,請嘗試:

str.replace(/\s*\([^)]*\)\s*/g, '').replace(/\s*\[[^\]]*\]\s*/g, '')

如果您說在第一個方括號內可以嵌套方括號,那么我會說,從數學上講,您將需要比有限狀態機(regex)更強大的理論機。

這應該用作替換正則表達式。 它針對每種括號類型進行單獨查找。

\s*(?:\[[^[]+]|\([^)]+\)|{[^}]+})\s*

編輯:我認為“嵌套順序”必須與正則表達式中的相同,因此如果我輸入的內容有誤,則可能需要對交替進行重新排序。 但是,它確實適用於您的示例。

暫無
暫無

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

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