我想用我的perl腳本中的正則表達式解析文件,以匹配表達式:定期進行匹配 n和空間
空間和「\ n」個一交替的方式(行) - 即第一我想它來搭配空間,然後一個「\ n」,然後是一個空格(這是文件中的新行...等)
感謝, 〜AD
我想用我的perl腳本中的正則表達式解析文件,以匹配表達式:定期進行匹配 n和空間
空間和「\ n」個一交替的方式(行) - 即第一我想它來搭配空間,然後一個「\ n」,然後是一個空格(這是文件中的新行...等)
感謝, 〜AD
試試這個:
(^ \n)+
要匹配開始一行,使用插入符號^
。
要匹配空格,可以使用文字空間或任何空格,使用\s
。
將sgm
置於該模式的末尾,例如, /pattern/sgm
將導致它跨越線路匹配。
如果您有興趣,還有更多的信息和perldoc perlfaq6的一些例子。
你可以這樣做:
if($file =~/ |(?: \n)+ ?/) {
print $file." has the pattern\n";
}
使用的正則表達式是|(?: \n)+ ?
相匹配:
space\n
其次由 可選space
你說你想要你的模式中的第二個空間在新的行。現在你是否能夠得到這個取決於你從哪裏得到你的字符串(好吧,也許不是,其中,但我想你明白了我的觀點)。如果您要解析的數據是從文件中讀取的,那麼您必須以段落模式讀取文件(即每個段落而不是每行都將構成一條記錄)。
假設你正在使用的文件處理文件,這樣做:
{
local $/ = ""; # one paragraph constitutes one record
while (<FILE>) {
if (/ \n /) {
print "Found one match!\n";
}
}
}
請注意,我用正則表達式模式沒有考慮到空間換行空間多次出現,因爲我沒」確定你到底想要做什麼。但無論如何,我的主要觀點是利用
local $/ = "";
HTH
真的嗎?你嘗試在Q和A的「狂野西部」發佈一個正則表達式問題? 8o0哇...我有點驚訝,你沒有得到一些關於告訴你只是在Mac/Linux/PC上做的答案...是的,我知道perl在他們所有的作品,它是平臺獨立的;這是我的觀點; 0)))) – Keng 2010-12-01 13:41:05