正则表达式对象的用法


正则表达式对象的用法


正则表达式是一个特殊的字符序列,利用事先定义好的一些特定字符以及它们的组合组成一个“规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。正则表达式是字符串处理的有力工具,但是并不是Python独有的,其他语言也有。
Python中,re模块提供了正则表达式操作所需要的功能。
大多数字母和字符一般都会和自身匹配。如果在字符串前面加了r,表示对字符串不进行转义。有些字符比较特殊,它们和自身并不匹配,而是表明应和一些特殊的东西匹配,或者会影响重复次数。这些特殊的字符我们称之为元字符。

正则表达式对象

本对象包含正则表达式模式以及表明如何应用模式的标志。
[code] 语法 1 re = /pattern/[flags] 语法 2 re = new RegExp(“pattern”,[“flags”]) [/code]
参数
(1)re
必选项。将要赋值为正则表达式模式的变量名。

(2)Pattern
必选项。要使用的正则表达式模式。如果使用语法 1,用 “/” 字符分隔模式。如果用语法 2,用引号将模式引起来。

(3Flags
可选项。如果使用语法 2 要用引号将 flag 引起来。标志可以组合使用,可用的有:
[code] g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找) [/code]

1.常用方法:

(1)“.”:表示除换行符以外的任意字符
(2)“[]”:指定字符集
(3)“”:匹配行首,匹配以后面的字符开头的字符串
(4)“ ” : 匹 配 行 尾 , 匹 配 以 ”:匹配行尾,匹配以 之前的字符结束的字符串
(5)“\”:反斜杠后面可以加不同的字符以表示不同的特殊意义
(6)“”:匹配位于之前的字符或子模式的0次或多次出现
(7)“+”:匹配位于+之前的字符或子模式的1次或多次出现
(8)“?”:匹配位于?之前的0个或1个字符
(9)“{m,n}”:表示至少有m个重复,至多有n个重复。m,n均为十进制数

2.字符串对象的方法4个:search()、match()、replace()、split()

(1)、search():返回下标
返回与正则表达式查找内容匹配的第一个字符串的位置。如果找到一个匹配,search方法将返回一个整数值(匹配字符的下标),如果没有找到匹配则返回-1。
(2)、match():以数组的形式返回匹配的正则文本
检索字符串str,以找到一个或多个与正则表达式匹配的文本,若没有找到任何匹配的字符串,则返回null。
(3)、split():返回划分后的数组
将一个字符串分割成子字符串,然后将结果作为字符串数组返回。
(4)、replace():返回划分后的数组
将一个字符串分割成子字符串,然后将结果作为字符串数组返回。

3.匹配规则:

(1) 字面量字符和元字符:
大部分字符在正则表达式中,就是字面的含义,比如/a/匹配a,/b/匹配b。如果在正则表达式之中,某个字符只表示它字面的含义(就像前面的a和b),那么它们就叫做“字面量字符”(literal characters)。
(2) 转义符:
正则表达式中那些有特殊含义的字符,如果要匹配它们本身,就需要在它们前面要加上反斜杠。比如要匹配加号,就要写成+。
(3) 特殊字符:
正则表达式对一些不能打印的特殊字符,提供了表达方法。

\cX 表示Ctrl-[X],其中的X是A-Z之中任一个英文字母,用来匹配控制字符。
[\b] 匹配退格键(U+0008),不要与\b混淆。
\n 匹配换行键。
\r 匹配回车键。
\t 匹配制表符tab(U+0009)。
\v 匹配垂直制表符(U+000B)。
\f 匹配换页符(U+000C)。
\0 匹配null字符(U+0000)。
\xhh 匹配一个以两位十六进制数(\x00-\xFF)表示的字符。
\uhhhh 匹配一个以四位十六进制数(\u0000-\uFFFF)表示的unicode字符。
(4)字符类:
字符类(class)表示有一系列字符可供选择,只要匹配其中一个就可以了。所有可供选择的字符都放在方括号内,比如[xyz] 表示x、y、z之中任选一个匹配。
预定义模式
预定义模式指的是某些常见模式的简写方式。

\d 匹配0-9之间的任一数字,相当于[0-9]。
\D 匹配所有0-9以外的字符,相当于[^0-9]。
\w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]。
\W 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]。
\s 匹配空格(包括制表符、空格符、断行符等),相等于[\t\r\n\v\f]。
\S 匹配非空格的字符,相当于[^\t\r\n\v\f]。
\b 匹配词的边界。
\B 匹配非词边界,即在词的内部。

虽然通过re模块可以使用正则表达式处理字符串,但是正则表达式对象提供了更多的功能。有兴趣的读者可以参考官方网站或其他资料,本小节只起到抛砖引玉的作用。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值