在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在Perl中使用s///进行替换操作,与m//进行查找操作类似。 s/with (\w+)/against $1's team/; ##第一个双斜线,表示被替代的文本。第二个双斜线,表示将替代为的文本。
s///可以有不同的定界符,但是必须保证两对字符。一对包住模式,一对包住替换字符串。 s#^https://#http://#; ##使用#号,分别包住模式和替换字符串。 s{}(); ##使用{}包住模式,()包住需要替换的字符串。
s///默认对$_进行替换操作。 $_ = "green scaly dinosaur"; s/(\w+) (\w+)/$2, $1/; ##匹配两个单词后,交换次序。$_= "scaly green dinosaur"; s/^/huge,/; ##$_ = "huge, scaly, green dinosaur";
s/^\s+//; ##将开头的空白替换为空字符串; s/\s+$//; ##将结尾的空白替换为空字符串;
s///也可以使用绑定操作符: $file_name =~ s#^.*/##s; ##指定左侧为操作的字符串。替换后,字符串直接改变,存储在左侧的标量变量中。 my $copy = $original =~ s/\d+ ribs?/10 ribs/r; ##使用/r修饰符,不改变原字符串,返回新的字符串给$copy。
s///也可以使用模式修饰符,/g表示全局替换,/i表示不区分大小写,/x表示用空格作为分隔符,/s表示增大"."的范围。
字符串的大小写转换。 \U将之后的所有字符转换为大写。 \L将之后的所有字符转换为小写。 \u将之后的首字符转换为大写。 \l将之后的首字符转换为小写。 \E关闭大小写转换功能。 $_ = "I saw Barney with Fred"; s/(fred|barney)/\U$1/gi; ##$_ = "I saw BARNEY and FRED" s/(fred|barney)/\L$1/gi; s/(\w+) with (\w+)/\U$2\E with $1/i ##$_ = "I saw FRED with barney" s/(fred|barney)/\u$1/ig; ##$_ = "I saw FRED with Barney"
字符串的一些操作符。字符串分割与合并。 my @fields = split /separator/, $string; my @fields = split /:/, "abc:def:g:h"; my $result = join $glue, @piece; my $i = join ":",4,6,8,10;
m//的返回值,在列表上下文,表示捕获变量的列表。 my $data = "Barney Rubble Fred Flintstone Wilma Flintstone"; my %last_name = ($data =~ /(\w+) \s+ (\w+)/g); ##由m//直接生成哈希。
直接从命令行运行简短的perl程序。 perl -p -i.bak -w -e 's/Random/Rand/g' fred*.dat 其中-p表示自动化生成一段读再输出的小程序。不需要带输出时,可以选择-n。 -i.bak对原文件做备份。 -w开启warning。 -e表示之后是直接执行的程序代码。 fred*.dat进行ARGV参数表,表示需要处理的文本。 perl -n -e 'print "\t gcc test_time.c" ' print实现标准输出 |
请发表评论