perl语言编程-正则表达式篇

使用正则表达式时,需要使用两个字符串处理运算符:模式匹配运算符m//和替换运算符s///。此处还将附带介绍另一个密切相关的运算符,即转换运算符tr///,它进行一些简单的转换,但不使用正则表达式。

while($line=<>){

if($line =~ m/exit/i) {exit;}

}

说明:用=~运算符来指定m//运算符查找的字符串。

当使用//做界定符时m可省略,即m/exit/ 和/exit/等效。

但是使用自己规定的界定符时一定要带m,如m@exit@,m{exit},m=exit=(和m/exit/等效)。

$text = "Pretty young, but not very young.";

$text =~ s/young/old/;

print $text;

Pretty old, but not very young.

s///和m//一样可以将//替换为自己习惯的界定符。

m//和s///都是从左向右做匹配,一旦匹配成功则不往下继续执行匹配。

我们可以使用修饰符,使它们的功能更强大。下面列出一些常用的与m//和s///一起使用的修饰符

i     --- 忽略大小写

g   --- 在全局范围内执行所有可能的操作

m   --- 让^和$匹配换行符/n

x    --- 忽略模式中的空白,并允许进行注释

s    --- 让. 匹配新行

o    --- 仅对模式进行一次编译

perl中在正则表达式中使用的特殊字符(使用时前面加上反斜线):

/D 匹配非数字字符

/d 匹配数字字符

/L 小写,直到遇到/E

/l 小写下一个字符

/n 换行

/r 回车

/S 匹配非空白字符

/s 匹配空白字符

/t 制表符

/U 大写,直到遇到/E

/u 大写下一个字符

/W 匹配非单词字符

/w 匹配一个单词字符(字母数字字符和“_”)

所有可用的perl量词:

* 匹配0词或者多次

+ 匹配1次或者多次

? 匹配1次或者0次

{n} 匹配n次

{n,} 匹配至少n次

{n,m} 匹配至少n次,但只多m次

断言(也称为锚),用来匹配字符串中的某些条件,非真实数据。

下面是一些合法的perl断言:

^ 匹配行首

$ 匹配行尾(或末尾前的新行)

/A 仅仅匹配字符串的开头

/B 匹配非单词边界

/b 匹配单词边界

/G 仅仅匹配前一个m//g剩余的内容(仅仅能和/g一起使用)

/Z 仅仅匹配字符串的末尾,或者末尾前的新行

/z 仅仅匹配字符串的末尾

perl中的元字符:

包括 / | ()[]{}^$*+?.

使用时,在它们面前加入反斜线/,就可以确保它们照字面意思解释,而不是做元字符用。 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值