Perl——正则表达式(四) 查找替换s///

转自http://blog.csdn.net/blog_abel/article/details/40589227 侵删

一. 介绍

使用 s/regex/replacement/modifiers 进行查找替换

二. 实例

(1) s///

1 $f = "‘quoted words‘";
2 #进行模式匹配,下面方法去除‘‘单引号
3 if($f =~ s/^‘(.*)‘$/$1/) { #true, $1指的是引用了第一组(.*)的内容, ^$这两个字符用来表示开始与结束
4
5     print "matches","\n"; # mathces
6     print $f,"\n";        # quoted words
7                           # 注意 标量$f 匹配后本身内容发生了变化
8 }  

(2) s///r

用它进行匹配后,原始标量的值不会发生变化,可以把新值赋值给一个新的标量

1 $f = "‘quoted words‘";
2 #进行模式匹配,下面方法去除‘‘单引号
3 $n = $f =~ s/^‘(.*)‘$/$1/r;
4
5 print "matches","\n";
6 print $f,"\n"; # quoted words   # 注意 标量$f 匹配后本身内容无变化
7
8 print $n,"\n"; # ‘quoted words‘ # 注意 $n  

(3) s///g 多次查找替换

1 $z = "time hcat to feed the cat hcat";
2 $z =~ s/cat/AAA/g;#替换多次
3 print $z,"\n"; #结果为 time hAAA to feed the AAA hAAA  

(4) s///e 求值

1 # reverse all the words in a string
2 $x = "the cat in the hat";
3 $x =~ s/(\w+)/reverse $1/ge; # $x contains "eht tac ni eht tah"
4
5 # convert percentage to decimal
6 $x = "A 39% hit rate";
7 $x =~ s!(\d+)%!$1/100!e; # $x contains "A 0.39 hit rate"  

(5) s/// 可以用 s!!! , s{}{} , s{}// 进行替换

时间: 2024-10-07 22:47:25

Perl——正则表达式(四) 查找替换s///的相关文章

notepad++使用正则表达式的查找替换

使用正则表达式可以很好地完成很多繁琐耗时的工作,以下抄录editplus正则表达式的使用,同样适用于notepad++:表达式 说明\t 制表符.\n 新行.. 匹配任意字符.| 匹配表达式左边和右边的字符. 例如, "ab|bc" 匹配 "ab" 或者 "bc".[] 匹配列表之中的任何单个字符. 例如, "[ab]" 匹配 "a" 或者 "b". "[0-9]"

vi查找替换命令

vi查找替换命令详解 分类: 常用工具技巧 Linux/Unix/BSD2010-07-13 15:05 72075人阅读 评论(2) 收藏 举报 正则表达式vimunixborderwindowsshell 一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使用如下两个键快速查找: n:按照同一方向继续查找 N:按照反方向查找 字符串匹配 pattern是需

重要更新-Word 2003查找替换最后一个实例的第四种方法

各位学员请注意! 在前面免费课程中讲到查找替换最后一个实例时当初只介绍了三种方法,在此补加第四种方法. 同时,视频内容已经更新!!! 原实例描述的是:要求针对WORD中某一个指定段落中关键字进行查找替换(把正文第一段中的所有"Microsoft"替换为"微软").第4种方法也比较简单,介绍如下: STEP 1:选择这一段(及此段中所有文字): STEP 2:Ctrl+H显示查找与替换对话框,分别在查找与替换处输入相应内容: STEP 3:把查找范围设置为"

sublime_中使用正则表达式查找替换

原文地址: http://frontmag.no/artikler/utvikling/regex-search-and-replace-sublime-text-2 我只是做下翻译(呃,简单理解下就好,我六级还没过呢) 正则的查找替换是st2内置的,不用装插件了 那,原文中是例子: 10x620x580mm 10x620x580mm 11x620x2390mm 11x620x2390mm 11x620x3050mm ... 作者的意图是想取得每行的第一个数字,然后加上mm,比如第一行,要变成1

Perl正则表达式例子

Perl正则表达式 一.介绍 正则表达式各语言都有自己的规范,但是基本都差不多,都是由元字符的组合来进行匹配:由于Nmap内嵌的服务与版本探测是使用的Perl正则规范,因此此篇博客记录一下Perl正则的相关内容,方便后期查阅. 二.Perl正则例子 下面的例子可能有不足之处,有些来源于博客,没有验证:1. 匹配IP地址:\d+\.\d+\.\d+\.\d+ \d:匹配一个数字字符,\d+:匹配一次或多次数字字符. \.:使用转义字符匹配'.'. 2. 匹配邮箱类似于[email protecte

Perl 正则表达式语法

1. 概要 Perl正则表达式是Boost.regex 默认行为,也可以将perl传入basic_regex 构造. boost::regex  e1(my_expression); boost::regex  e2(my_expression,  boost::regex::perl  |  boost::regex::icase); 2. 特殊字符 . [ { ( ) \ * + ? | ^ $ 3. 通配符 ‘ .’ 在字符集之外使用时可以匹配任意单字符,除了以下两种特殊情况: (1)NU

Linux Shell字符串操作(长度\查找\替换)详解

在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那么就以$

老男孩带你了解perl正则表达式中的零宽断言

老男孩IT教育小编为大家整理了perl正则表达式中的零宽断言的方法,希望能帮到大家 1.1 前言 本文只介绍perl语言正则表达式的零宽断言功能. 零宽断言实质:匹配文本里面的位置. 零宽断言叫zero-length assertions,也叫lookaround(这个更容易理解). 包括:lookahead(向前看,零宽度正预测先行断言),lookbehind(向后看,零宽度正回顾后发断言). 从左到右对文本进行匹配,判断是否符合exp表达式. 名字 表达式 如果子表达式成功则- positi

Vim简单的查找替换

这里简单的给大家介绍一下Vim的查找替换,众所周知,Vim对正则表达式的支持是非常好的,对于程序员来说在分析大量数据的时候,用到Vim的这个功能无疑是件利器. 首先大家要明白vim正则里面的几个特殊含义: ^ 代表行首 $ 代表行尾 \d 代表数字 \D 代表非数字 [x,y,z]:代表各种条件选择 好的,那我们就出几个常用的题目做一下来试一下吧: 1.将以数字开头的行删除 %s/^\d.*$//igc :把这行置成空 %s/^\d.*$\n//igc :把这行直接删掉,包括换行符一起删掉,(注