Perl带换行符的正则匹配,在线等
需要跨行匹配某个序列比如以下字符串:$str="ABCDEFG"欲匹配:“CD”该怎么进行呢?我的表达式/C\r\nD/无法匹配/C\r\n/是可以查到字母C以及换行符的...
需要跨行匹配某个序列
比如以下字符串:
$str= " ABC
DEFG"
欲匹配:
“C
D”
该怎么进行呢?
我的表达式 /C\r\nD/ 无法匹配
/C\r\n/ 是可以查到字母C以及换行符的,但是加上D就不行了,求高人指导 展开
比如以下字符串:
$str= " ABC
DEFG"
欲匹配:
“C
D”
该怎么进行呢?
我的表达式 /C\r\nD/ 无法匹配
/C\r\n/ 是可以查到字母C以及换行符的,但是加上D就不行了,求高人指导 展开
1个回答
展开全部
$str= " ABC
DEFG";
print 1 if $str =~ /C\s+D/m;
或者
print 1 if $str =~ /C[\r\n]+D/m;
DEFG";
print 1 if $str =~ /C\s+D/m;
或者
print 1 if $str =~ /C[\r\n]+D/m;
追答
这是因为 while () 每次只会读一行, 所以,
第一次读的是: ABC\r
第二次读的是: DEFG
也因此 /C[\r\n]+D/m 这个模式从来没匹配到
要做到你想要的那个效果, 可能你要写成
@lines = ;
$str = join "", @lines;
$str =~ s/C[\r\n]+D/ /mg;
# 或者 $str =~ $str =~ s/(C)[\r\n]+(D)/$1 $2 /mg;
# 或者 $str =~ s/[\r\n]+/ /mg;
print $str
其实.. 你想做甚麼 ?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询