python正则表达式学习笔记(上)

这学期课程涉及python,所以正在快速过一遍基础内容。现将整理的部分笔记发上来一遍自己和大家随时观看,因为浏览的是英文slides,所以可能有错误,还望大家不吝赐教。

Regular Expression Syntax
.  :本行内任意的单个字符,除了换行符
\d 匹配一个数字字符。等价于 [0-9]。
\D 匹配一个非数字字符。等价于 [^0-9]。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
\W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。


^ : 匹配字符串的开头


$ :匹配字符串的结尾,比如“fu$”只能匹配到“fu”,而“fu”可以匹配到“fun”和“fuck”


*:放在限定内容后面,表示有0个或多个,比如“ab*”可以匹配到a,ab,abb,abbb


+:放在限定内容后面,表示有1个或多个,比如“ab+”可以匹配到ab,abb,abbb


? :放在限定内容后面,表示有0个或1个,比如“ab*”可以匹配到a,ab


|  意思是or  比如 apple|orange 则可以匹配到apple 或者orange


r”” 则“”里面的所有内容保持原意,比如r”\\xxoo”则保持\\xxoo




*?,+?,??
平时*,+以及?都是贪婪(Greedy strategy)策略,将会匹配越长越好,然而有时并不想用贪婪策略,则放一个?在后面控制。
{m} 这前面放需要匹配的元素a,则表示匹配m个a,比如a{2},则只会匹配aa,而不会匹配a,aaa
{m,n}这前面放元素a,则表示匹配m到n个a,比如a{2,4},则可以匹配到aa,aaa,aaaa
[] 类似数组,比如[abc]将会匹配a或者b或者c    [a-z]将会匹配从a到z的任意字符
[a-zA-Z0-9] 匹配任何字母及数字。 [^aeiou] 除了aeiou字母以外的所有字符。 [^0-9] 匹配除了数字外的字符


\ 转译, 比如\\将会匹配\   \*将会匹配* 而\\\\将会匹配\\   \*\!将会匹配*!而不是*\!
需要注意的case:

python正则表达式学习笔记(上)_第1张图片

你可能感兴趣的:(python)