我的文件中的模式如下所示:
db::parameter nf
-data. Value. \
-data2. Value2. \
db::parameter ww
-data1. Value1. \
-data2. Value2. \
我需要regexp,它将整个模式转换为从db
我试图匹配模式,直到空行显示
while(<$infile>){
chomp;
If( $_=~/db:parameter\s+$){
print $_;}
P.S。我知道正则表达式完全错误,但我对正则表达式并不擅长
答案 0 :(得分:3)
如果您想使用空行作为记录分隔符,我建议您使用paragraph mode吗?
$/ = ""; # set input record separator to empty string
while (<>) { # proceed as usual
使用空字符串是一种特殊情况,如上面链接的文档中所述:
将$ /设置为“\ n \ n”意味着与设置为“”略有不同,如果文件包含连续的空行。设置为“”会将两个或多个连续的空行视为一个空行。设置为“\ n \ n”将盲目地假设下一个输入字符属于下一个段落,即使它是换行符。