2007-01-30记录
用s///替换
$_="he is a boy.";
s/boy/man/;
print "$_\n";
man把boy替换了,默认只替换一次,要全部替换,使用全局替换/g
常用在将多个空格用一个空格替换
s/\s+//g;
去掉开头的空格
s/^\s+//;
去掉结尾的空格
s/\s+$//;
开头和结尾的空格都去掉
s/^\s+|\s+$//;
不同的分隔符
非配对的字符,可以和/一样作为分隔符
配对的字符,必须使用两对,一对存放模式,一对存放替换的字符串,两对分隔符可以不同s[boy]{man}
可选修饰符
/g,/i,/x,/s
绑定操作
$filename =~ s#^.*###s
大小写转换
\U要求紧接着的都是大写
$_="I saw Barney and Fred.";
s/(Barney|Fred)/\U$1/gi;
\L后面的都是小写
默认时会影响剩余的,用\E改变
\u和\l只作用于下一个字符
大小写转换的修饰符也可以出现在""中
split将字符串分隔开
不包括csv文件
@fields=split /separtor/,$string;
@fields=split /:/,"ab:cd:ef";
原则,开头的空元素被返回,结尾的空元素被丢弃
my $string="this is a blank";
my @array=split /\s+/,$string;
默认时,split对$_操作,模式为空白
@array=split;
join函数,操作和split相反
$string=join /:/,2,4,6,8;
.+?一个字符一个字符去匹配
*?
{1,4}?
{2,}?