如何在使用Perl来修改文本文件,要求在文件中出现字符('或,'时在中间插入一个N,即将其改为(N'或,N'
原文件:insertintotab(a,b,c,d)values('A',2,'CC','啊');insertintotab(a,b,c,d)values('Aa',22...
原文件:
insert into tab(a,b,c,d) values('A',2,'CC','啊');
insert into tab(a,b,c,d) values('Aa',22,null,'啊啊');
修改后的文件:
insert into tab(a,b,c,d) values(N'A',2,N'CC',N'啊');
insert into tab(a,b,c,d) values(N'Aa',22,null,N'啊啊'); 展开
insert into tab(a,b,c,d) values('A',2,'CC','啊');
insert into tab(a,b,c,d) values('Aa',22,null,'啊啊');
修改后的文件:
insert into tab(a,b,c,d) values(N'A',2,N'CC',N'啊');
insert into tab(a,b,c,d) values(N'Aa',22,null,N'啊啊'); 展开
4个回答
展开全部
给一个比较完美的方案:
#!perl -w
use strict;
#AUTHOR: niejieqiang
while (<>) {
s/('.*?')/&rm($1)/ge;
print;
}
sub rm {
my $str = $_[0];
$str=~s/^/N/;
return $str;
}
#!perl -w
use strict;
#AUTHOR: niejieqiang
while (<>) {
s/('.*?')/&rm($1)/ge;
print;
}
sub rm {
my $str = $_[0];
$str=~s/^/N/;
return $str;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
# 先读最整个文件内容到 $doc 中
$doc =~ s/('([^\,)]))/N'$2/g;
print $doc;
$doc =~ s/('([^\,)]))/N'$2/g;
print $doc;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
零宽断言 比单纯的s///通用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
s/('[^']+')/N$1/g;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询