我有這樣的字符串,例如:如何使用正則表達式獲得重複組?
Something`3[[typeOne],[typeTwo],[typeThree]][[typeOne],[typeTwo],[typeThree]]
可包含N種:
[[type1],...,[typeN]]
我想提取這些內部typeX
字符串(type1
,...,typeN
)。我使用這個模式(忽略空格 - 它只是可讀性):
\[
(?:,?\[
([^\]]*)
\])+
\]
但它給我的只有最後一種類型(typeN
)。如何使用正則表達式獲得所有typeX
字符串?
編輯:
其實,真正的問題是
Something`3[[typeOne],[typeTwo],[typeThree]]
可包含N種:
Something`N[[type1],...,[typeN]]
我的正則表達式是:
(?:`(?<count>\d+)\[
(?:,?\[([^]]+)\])+
\])
對不起改變這個問題Ë中,我試圖簡化問題的輸入,並some solution below (Avinash Raj)並解決現有的輸入,但不是這一個...
編輯2:
我似乎過於簡化我的問題,爲求可讀性的...這是我的真實和充分的要求:
How to get repeating groups that nest within another group with regex?
您的解決方案几乎是它,但我的問題是一個比較複雜 - 請我的編輯... – Tar 2014-10-07 10:29:19
所以要匹配中的字符串'[]'只有上線,其包含'某物號碼'。我對麼? – 2014-10-07 10:31:24
是的。我也想得到數字和領先的'Something',但數字和'[]'組都可以丟失,所以它都在一個組中(爲了讓我有條件:它可以是'Something '2 [[One],[Two]]'或者只是'Something',所以我想把它放在有條件的非捕獲組中:'(?:...)?' – Tar 2014-10-07 10:36:53