■正则表达式是一一个特殊的字符序列,利用事先定义好的一些特定字符以及它们的组合组成一 一个 “规则”,检查一个字符串是否与这种规则匹配来实现对字符的过滤或匹配。正则表达式是字符串处理的有力工具,但是并不是Python独有的,其他语言也有。Pytbon中,re模块提供了正则表达式操作所需要的功能。
■大多数字母和字符一般都会和自身匹配。如果在字符串前面加了,表示对字符申不进行转义。有些字符比较特殊,它们和自身并不匹配,而是表明应和一些特殊的东西匹配,或者会影响重复次数。这些特殊的字符我们称之为元字符。
一、下面来介绍一些常用的正则表达式元字符
-
“.”:表示除换行符以外的任意字符
-
“【】”指定字符集
-
“^”:匹配行首,匹配符号后的字符开头的字符串
二、正则表达式的基础语法 -
匹配不同类型的字符
-
定位控制字符
-
指定重复字符
-
特殊字符转义序列
正则表达式字符全集(侵权联删)目前为止,我们仅适用正则表达式查询字符串,正则表达式也可用于修改字符串,使用下面的方法:
1)split() 从RE匹配的地方将字符串分解为字符串列表; 2)sub() 找到RE匹配的所有子字符串,并使用不同的字符串取代它们; 3)subn() 和sub做的事相同,但是返回新字符串和替换的次数。
一个正则表达式(或RE)指定了一集与之匹配的字符串;模块内的函数可以让你检查某个字符串是否跟给定的正则表达式匹配(或者一个正则表达式是否匹配到一个字符串,这两种说法含义相同)。
正则表达式可以拼接; 如果 A 和 B 都是正则表达式, 那么 AB 也是正则表达式。 通常, 如果字符串 p 匹配 A 并且另一个字符串 q 匹配 B, 那么 pq 可以匹配 AB。除非 A 或者 B 包含低优先级操作,A 和 B 存在边界条件;或者命名组引用。所以,复杂表达式可以很容易的从这里描述的简单源语表达式构建。
正则表达式可以包含普通或者特殊字符。绝大部分普通字符,比如 ‘A’, ‘a’, 或者 ‘0’,都是最简单的正则表达式。它们就匹配自身。你可以拼接普通字符,所以 last 匹配字符串 ‘last’.
有些字符,比如 ‘|’ 或者 ‘(’,属于特殊字符。 特殊字符既可以表示它的普通含义, 也可以影响它旁边的正则表达式的解释。
重复修饰符 (, +, ?, {m,n}, 等) 不能直接嵌套。这样避免了非贪婪后缀 ? 修饰符,和其他实现中的修饰符产生的多义性。要应用一个内层重复嵌套,可以使用括号。 比如,表达式 (?:a{6}) 匹配6个 ‘a’ 字符重复任意次数。
匹配字符串尾或者在字符串尾的换行符的前一个字符,在 MULTILINE 模式下也会匹配换行符之前的文本。 foo 匹配 ‘foo’ 和 ‘foobar’,但正则表达式 foo$ 只匹配 ‘foo’。 更有趣的是,在 ‘foo1\nfoo2\n’ 中搜索 foo.$,通常匹配 ‘foo2’,但在 MULTILINE 模式下可以匹配到 ‘foo1’;在 ‘foo\n’ 中搜索 $ 会找到两个(空的)匹配:一个在换行符之前,一个在字符串的末尾。