我有大量的文件包含帶有大括號的大括號。我做而不是如果括號匹配或不相符。正則表達式來檢查括號是否嵌套
我想檢查是否有任何大括號嵌套,通過檢查哪些第一次後左括號 - 閉幕或另一個開放括號。我假設所有的括號是匹配的,並且每行最多隻有一個外括號。 (即,[foo[bar]]
是有效行,[foo][bar]
不是,因爲第二對括號不是嵌套的)。
我可以從this question使用's/.*\[\([^]]*\)\].*/\1/g'
得到括號內的所有內容,但我不確定如何重新測試抓取的字符串以進一步匹配。
例如,給定以下字符串:
foo [ bar, [baz] ]
我想我會採取的步驟是:從左側
- 遍歷,直到我看到的開口支架。 (如果沒有找到,則忽略該行)。
- 從開口大括號中進行非貪婪搜索,直到遇到
[
或]
。如果[
,括號嵌套,則返回該行。如果]
,
理想我想基於sed
或Unix工具的解決方案,但其它是可接受的(perl
,例如)。任何幫助,將不勝感激。
你關心嵌套括號的水平或如果這種嵌套的支架存在根本不理? – gtgaxiola
@gtgaxiola我只關心線條,如果至少有一個嵌套支架 - 我不在乎這一點的嵌套支架的水平。 – simont