在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实现标准输出

Perl中的替换(七)相关推荐

  1. Perl中删除或替换字符串中特殊字符(如空格)的方法

    今天在写实验代码的时候,突然有了这样一个需求,就是用Perl将包含换行(或回车)的字符串变成一行,并且每一行用空格分隔,经过搜索,网友介绍了这样的写法: [plain] view plaincopy ...

  2. 关于perl中的反勾号(``),system和exec

    关于perl中的反勾号(``),system和exec 在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.  ...

  3. perl中的反勾号(``),system和exec

    在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.       反勾号(``) 首先,我们有命令输入操作符, ...

  4. Perl 中的正则表达式

    9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握 ...

  5. 强大的Perl中的正则

    转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...

  6. Perl中的正则表达式

    转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...

  7. perl-regexp_使用Regexp :: Common在Perl中轻松进行数据验证

    perl-regexp 在Perl中构建正则表达式可能会有些棘手,特别是对于新手而言. 这是一项强大的技术,但是即使是经验丰富的Perl开发人员有时也会发现自己在检查文档以确保他们做对了. 正则表达式 ...

  8. vue中数组的七个响应式方法

    vue中数组的七个响应式方法 起因: ​ 在使用vue实习中,通过数组的索引改变了数组中的值,测试时发现,更改成功了,但是试图无响应. 原因: *通过索引值修改数组元素,不是响应式方法* // 以下代 ...

  9. linux六种进程状态,Linux操作系统中进程的七种状态

    Linux操作系统中进程的七种状态 发布时间:2018-05-07 20:43, 浏览次数:741 , 标签: Linux 1 Linux中进程的七种状态(1)R运行状态(runing):并不意味着进 ...

最新文章

  1. Python基础总结(3)
  2. 黑马程序员_Java解析网络数据流的三种特殊方法
  3. vue + axios---封装一个http请求
  4. JavaScript获取当前日期时间
  5. Qt creator 编译错误 :cannot find file .pro qt
  6. python3性能还低吗_Python3 vs. Python2 大作战,谁将是性能之王?
  7. 中软国际2020年业绩再创新高 归母净利同比增长26.5%
  8. 最新安徽省二c语言题型_2020年成人高考考试考前1个月最新最全备考攻略+资料,考生必看,建议收藏!...
  9. 前端大牛or架构师应该具备这些
  10. Android -- Property Animation
  11. C语言实现贪吃蛇小游戏
  12. tomcat 如何进行优化?优化方案有哪些?
  13. matplotlib配色
  14. 确立Sprint 目标 (Sprint Goal) 的8个理由
  15. rdmsr获取Intel CPU温度
  16. 改革IMF首先要增加中国发言权
  17. 桌面管理 | Windows自带工具
  18. rfm模型python_Python pandas RFM模型应用实例详解
  19. 遥感科普|中国高分系列卫星综述(2020版)
  20. JavaWeb,使用servlet/jsp时页面跳转的两种方式:转发和重定向

热门文章

  1. C++ 常用设计模式
  2. (0.2)linux下Mysql的安装配置与管理入门(目录篇)
  3. 初学总结--------Java修饰符与修饰关键字(且叫修饰关键字)
  4. Panabit安装配置笔记
  5. 构造函数失败_抛出异常
  6. warning:This application is modifying the autolayout engine from a background thread
  7. 1.阿里云RDS配置白名单,实例,外网地址,mysql数据库。
  8. Hadoop怎么了,大数据路在何方?
  9. FreeModbus线圈
  10. S5PV210裸机之SD卡