一、Perl正则表达式的形式
1、模式匹配
- 得到“是否匹配”的结果,无其他操作——找pattern
- 形式:m代表match,但也可以去掉
m/<regexp>/
/<regexp>/
m?<regexp>? - 与匹配操作符~一起判断是否匹配后面的字符串
$test='china';
$target=".*ina";
$test=~m/$target/;##匹配返回1,不匹配返回0

- 在这例中,学会的是匹配模式中括号括起来的部分可以用美元符$加数字表示
- 如第一个(\d+)的内容就被$1所获取,第二个(\d+)的内容就被$2所获取

举例:


2、模式替换
- 替换操作,返回布尔量
-
形式
s/<regexp>/<replacement>
s?<regexp>?<replacement>
多一个e
举例e的使用,使用后//内的内容会执行
3、模式转化
- 和模式替换类似,用于弥补模式替换的不足
- 形式
tr/<regexp>/<replacement>
tr?<regexp>?<replacement> - 功能,将string1中字符依次、逐个替换为string2中的字符
模式转化示例
- 注意第一个例子中a变d,b变e,c变f,var中所有abc都逐个被替换
- 第二个例子中abcd对应ABC,就会使得d对应C作替换
这是模式转化的特点:多出来的都按照最后一个作替换
功能:
- 大小写互换/特定字符的计数
$str=~tr/a-zA-Z/A-Za-z/
$str=~tr/0-9/0-9/
#这么做之后字符串本身不发生变化,但是可知道替换过多少次,就是计数了
模式转化的选项


二、Perl正则表达式的原则
正则表达式仅对标量进行匹配
- 可以对字符串变量进行匹配,数组就不可以
- 这很好理解
匹配时,默认值匹配、替换1次,且对象为最早的可能匹配

正则表达式可以处理双引号所能处理得任何和全部字符

结果状态和反向引用

正向预查和负向预查


网友评论