• Perl中的替换(七)


    在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$2E 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 " gcc test_time.c" '  print实现标准输出

  • 相关阅读:
    Unity 2018 version class.jar path
    GitHub git
    QT install
    Android Studio 安装及汉化
    Unity 调用android
    JAVA 调用c++ 扩展 批评那些垃圾,
    JAVA java调用C++动态链接库dll,有详细过程。VS2015+Eclipse以及失败解决方案
    前端将数据转化为弹幕效果的实现方式
    css圣杯布局的实现方式
    浏览器缓存问题原理以及解决方案
  • 原文地址:https://www.cnblogs.com/-9-8/p/5087098.html
Copyright © 2020-2023  润新知