我有一個像正則表達式的爲層次文本
HEADER foo bar
garbage
SUBHEADER foo foo bar
other garbage
SUBHEADER foo foo bar bar
HEADER foo baz
SUBHEADER foo bar foo foo
SUBHEADER foo foo foo foo
SOMETHING bar bar bar
HEADER baz baz
SUBHEADER baz bar baz foo
一個文件,其中的大寫單詞字面發生,並希望與找到SOMETHING
一起對應HEADER
和SUBHEADER
,即
HEADER foo baz
SUBHEADER foo foo foo foo
SOMETHING bar bar bar
這是相當在一個程序中微不足道,但可以正則表達式嗎?我可以想象一個使用否定斷言的解決方案,但這種解決方案非常難以理解。
我試過這個像'perl -0777 -ne'/(HEADER.*?\n).*?(SUBHEADER.*?\n).*?(SOMETHING.*?\n)/s和打印「$ 1 $ 2 $ 3 * \ n」'',但得到了第一個HEADER和SUBHEADER。 – maaartinus
確實!我修復了它。 –
我得到'HEADER foo baz'這很好,但是'SUBHEADER foo bar foo foo'不是。我看到我應該有數字foos代替! – maaartinus