Learning Perl(Perl语言入门)学习笔记(8)

第九章      以正则表达式处理文本

 

1、  使用s/// 操作符可以进行“查找和替换”,其中前两个斜线之间的是模式(pattern),后两个斜线中间的是替换字符串(replacement string);替换字符串中可以使用匹配变量;使用选项修饰符 /g 可以进行全局替换;s/// 操作符有布尔型的的返回值,替换成功时为“真”,否则为“假”;

2、  Perl中,可以对模式匹配到的字符串利用“替换”的功能进行适当的大小写转换,这可能需要用到如下的转义字符:

a)         /U  其后的所有字符转换为大写;

b)        /L  将其后的所有字符转换为小写;

c)        /E  关闭大小写转换的功能;

d)        /u  将其后字符串的首字符转换为大写;

e)         /l   将其后字符串的首字符转换为小写;

说明:使用 /L/u 可以将其后所有字符转换为小写,但首字母大写;上述所有转换方式亦可用于任何双引号内的字符串;

3、  split 操作符可以根据“分隔符(可以使用正则表达式的模式匹配)”拆开一个字符串并返回由该分隔符分隔开来的一串字段(子字符串),而分隔符本身不会出现在返回值中;如果两个分隔符相邻,则其间的内容返回为空字段(子串),而split保留开头处的空字段,但会舍弃结尾处的空字段;split 默认会以空白为分隔符拆开$_

4、  split相反,join函数会把字符串片段(split中所说的子串或字段)使用“分隔符”连接在一起,此时的分隔符会出现在返回字符串中,但分隔符只在两个片段间出现;join的分隔符不能是不能是正则表达式;

5、  在列表上下文中使用模式匹配操作符 m// 时,如果匹配成功,则其所返回的列表内容是所有匹配变量的内容,否则返回空列表;m// 操作符可以使用 /g 选项修饰符以让模式匹配到字符串的每个可以匹配之功之处;这差不多类似于split 函数的相反功能;

6、  前述的四个量词 * +、?、和{}在模式匹配时默认都是贪婪模式,即尽可能多的匹配字符串中的内容,即便是 ?在匹配时也是尽可能的“要匹配”;为了取得相反的效果,即尽可能少的匹配,可以把使用到的量词指定为非贪婪模式;在量词后紧跟一个问号“?”就可以使其工作在非贪婪模式下;非贪婪模式通常跟效率没有直接关系;

7、  默认情况下,正则表达式都是用来匹配单行文本,但在模式后使用 /m 这个选项修饰符后可以实现模式的跨行匹配;

模式匹配中,圆括号具有记忆功能,如果仅想分组而不进行记忆,可以使用“(?:模式)”的格式进行;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值