我想解析一些源文件,並堅持這個問題。我正在尋找匹配一個特殊的字符串,其中有「< <」和「>>>」,我試圖從找到上述符號開始直到它遇到第一個「;」開始刪除所有換行符。符號。任何幫助都感激不盡。Perl從匹配的字符串中刪除換行符
這就是我要做的:
輸入:
... lines of code
func1 <<< abc, xyz >>> (str1,
str2,
str3);
... lines of code
輸出:
... lines of code
func1 <<< abc, xyz >>> (str1, str2, str3);
... lines of code
變量FUNC1,ABC,XYZ,STR1,STR2,STR3都可以變化。
在此先感謝。
編輯:
這是我曾嘗試和迄今爲止只打印相同的模式作爲輸入。
while (<$fh>) {
if (/\<\<\<.*\>\>\>/) {
while ($_ !~ /\)\s*\;/) {
chomp $_;
$_ = <$fh>;
}
print $_;
}
}
編輯2:
問題已經解決。查看答案。
如果一行包含'<<< ... > >>','然後它chomp',並連接所有的下一行。沖洗,重複,直到在行末找到一個「;」。完成。 – TLP
@TLP:我也嘗試連接。但仍然無效。 –
您並未在該代碼中連接。 – TLP