在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中的替换(七)的更多相关文章

  1. Perl中的正则表达式

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

  2. Perl中的正则表达

    前几天用到了Perl语言,主要看了一下Perl中的正则表达式,在各种网页语言中,正则表达式在处理字符串的时候十分有用,所以这里就简单说一下在Perl中正则表达式的应用. 先上代码 #!/usr/bin ...

  3. perl命令批量替换文件内容

    转自:http://www.jbxue.com/article/12638.html 使用perl命令批量替换文件内容. 对linux下的文件内容进行替换,有时不用编写perl脚本,用perl命令就可 ...

  4. Perl中的执行上下文

    perl中的上下文 在perl中,很多地方会切换上下文.所谓上下文,它的重点在于同一个表达式出现在不同地方,得到的结果不同.换句话说,同一个表达式,它表达的值不是固定的.这就像是同一个单词,在不同语境 ...

  5. Perl中的匹配(六)

    在Perl中,匹配的定界符如果是双斜线//,可以直接使用双斜线完成匹配操作. 如果特定条件下需要改变定界符,如改为{},[]等.需要加入m,m{},m[]等. m%^http://% 默认的模式匹配对 ...

  6. perl中的grep函数介绍

    grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...

  7. 在 Perl 中使用 Getopt::Long 模块来接收用户命令行参数

    我们在linux常常用到一个程序需要加入参数,现在了解一下 perl 中的有关控制参数的模块 Getopt::Long ,比直接使用 @ARGV 的数组强大多了.我想大家知道在 Linux 中有的参数 ...

  8. Word中批量替换软回车

    在平时工作中,有时候需要拷贝一些截取自网页上的文字,当选中后拷贝到Word中时,有时候在每行的结尾出现如下的符号,,这给后期文字的整理带来了很多不便,在此记录从网上获取的解决方法,以免遗忘和便于查找. ...

  9. SQL Server中批量替换数据

    SQL Server数据库中批量替换数据的方法 SQL Server数据库操作中,我们可能会根据某写需要去批量替换数据,那么如何批量修改替换数据呢?本文我们就介绍这一部分内容,接下来就让我们一起来了解 ...

随机推荐

  1. php--在apache上配制rewrite重写

    配置步骤: 第一步:找到apache的配置文件httpd.conf(文件在conf目录下) 第二步:你首先必须得让服务器支持mod_rewrite,如果你使用的是虚拟主机,请事先询问你的主机提供商. ...

  2. 让Dreamweaver支持less

    编辑->首选参数->文件类型/编辑器->在代码视图中打开->添加" .less"后缀

  3. linux 开机启动设置

    操作系统:Ubuntu12.04硬件环境:HP CQ45        当用户使用sudo apt-get install安装完apache和mysql之后,这些服务默认是开机启动的,但是有的时候需要 ...

  4. Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin

    plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...

  5. SQl中Left Join 、Right Join 、Inner Join与Ful Join

    1 left join 左外连接:查询结果以左表数据为准.假如左表有四条数据,右表有三条数据,则查询结果为四条,且都是左表中有的数据. 例如: EMP表: SAL表: 左连接 左连接,表EMP是主表, ...

  6. QMainWindow的setLayout的问题

    因为QMainWindow有自己的layout,所以需要一个QWidget,然后setCentralWidget,给这个QWidget调用setLayout http://stackoverflow. ...

  7. 解决MyEclipse吃内存以及卡死的方法

    前言:MyEclipse5.5 大小 139M:MyEclipse6.5 大小 451M:MyEclipse7.0 大小 649M!下载服务器又是国外的...下载速度累人也就罢了,只要你工作性能一流. ...

  8. IntelliJ IDEA 的 Java 热部署插件 JRebel 安装及使用

    JRebel 介绍 JRebel for Intellij JRebel 在 Java Web 开发中, 一般更新了 Java 文件后要手动重启 Tomcat 服务器, 才能生效,  自从有了 JRe ...

  9. Java学习——对象和类

    1. 入门例子 package jihite; public class Dog{ int dogage; public Dog(String name){ System.out.println(&q ...

  10. python 内存监控模块之memory_profiler

    0. memory_profiler是干嘛的 This is a python module for monitoring memory consumption of a process as wel ...