我想這個文本拆分成故事中的各種不同的角色,但你可以看到有存儲在括號和括號備註等數據:更換支架之間的分號在Javascript
var string = "Batman [Bruce Wayne; also as Two-Face]; Joker; Ra's al Ghul; Mr. Freeze; Killer Moth; Poison Ivy; Mad Hatter; Spook; Scarecrow; Captain Stingaree; Cavalier; Cluemaster; Signalman; Batman [Jerry Randall]; Tweedle Dum; Tweedle Dee; Catwoman; Riddler; Lex Luthor; Superman; Two-Face; Commissioner Jim Gordon; Arkham Asylum";
一般來說,你可以像這樣拆分此字符串:
string.split(';')
,你會得到相當接近,但也有地方有中括號或括號之間用分號隔開的情況。所以在這種情況下,「蝙蝠俠」會分成兩個角色。
問題: 如何在拆分之前刪除括號和括號內的分號?
我想這樣的正則表達式:
characters.replace('/(\[[^)]*);([^)]*\])/', '$1$2')
但似乎並沒有工作。有任何想法嗎?
聽起來像一個[XY問題](http://meta.stackexchange.com/q/66377/153542),我建議寫一個簡單的解析器(它們並不那麼難)。 – zzzzBov
你想要輸出什麼:('蝙蝠俠','小丑')或('蝙蝠俠','布魯斯韋恩','也是雙面','小丑',...) – bcorso
我想有額外的「數據」進行進一步處理,所以它會像(蝙蝠俠[布魯斯韋恩也作爲雙面],小丑,Ra's al Ghul) – delimited