0
鑑於格式的文件後:解析一行在文件中的匹配模式在Perl腳本
Foo:
var1 = 1
var2 = 2
var3 = 3
Bar:
var1 = 4
var2 = 5
var3 = 6
Baz:
var1 = 7
var2 = 8
var3 = 9
我想打開此文件,一行行讀它,找到它來後occurence VAR3模式Baz並從它的perl腳本中取值9。什麼是最好的正則表達式來做到這一點?
sub getValue {
open($fh, $file);
while(my $line = <$fh>) {
chomp($line);
if($line =~ "regex here") {
my $value = $3;
}
}
return $value;
}
因此,與正確的正則表達式,我希望這個子返回值9.
「Baz。*?var3 =(\ d +)」可能有效,但您需要確保點符合換行符。你到目前爲止嘗試過哪些正則表達式? – Secespitus
你不能像你所要求的正則表達式。當模式在不同的行上時,您可以逐行進行。當您找到帶有「Baz:」的行時設置一個標誌,當您找到另一個標題(帶有':'而不是'Baz'的行)時取消設置。如果該標誌在'var3'上匹配。或者,將整個文件讀入一個變量,然後就可以進行多行匹配。 – zdim
@Secespitus我認爲「確保'.'匹配換行符」正是問題的要點。你能詳細說明嗎? – Yunnosch