正则表达式

正则表达式:

正则表达式也叫匹配模式,它由一组具有特定含义的字符串组成,通常用于匹配和替换文本。

正则表达式,是一个的技术,很多 编程语言支持正则表达式处理

正则的使用:(大小写意思正好相反)

re 中的常见方法:match()     findall()    finditer()  sub()   compile()  serch()

match匹配第一个字符

findall匹配所有的字符

元字符:

.                                                     #  匹配非换行的任意字符

\d   (degist)                                              #匹配数字<==>[0123456789]<==>[0-9]表示匹配中括号里面出现的数字也就是所有数字(数字只有0-9十个数字)

\D                                                #匹配非数字    

\w                                                 #匹配有效字符:大小写字母+  数字+ 下划线(_)+各国语言字符(不建议使用)

\W                                                #匹配特殊符号:-*/+=@#¥%&等符号

\s                                                   #匹配空格位(\t代表table键)

\S                                                   #匹配所有非空格位

^                                                    #以  开头

$                                                     #以  结尾

^\d.*a$                                        #表示以数字开头 以a结尾的中间字符串

\b                                                    #匹配单词

[]                                                    #表示查询[]中的字位 若是中文字体,则需要一个一个的写进去(不带,  若带则说明是要查询,)  0-9  a-z  A-Z区间可以任意选择比如[1-5]            [h-n]....若是多个区间则是直接写中间不加任何符号            [0-9a-zA-Z]也可以数字--字母            [0-z]用的是ascii码值排列

[^dfg]                                            #表示匹配除了dfg这几个字母之外的所有字符

注意:在python中两个"\"在输出中表示'\',因为'\'具有转义的作用

在正则里面‘\’也具有转移的转义的作用   在正则里面当字符里面有多个‘\’的时候要用r将‘\’的转义的作用去除(有事没事就+r)

位数:(须是英文符号)

*                           表示多个或者0个              

 +                        必须是1或者多个不能是0个(返回值有或者没有  返回没有的时候返回空字符”'')                         

  ?                       表示0或者1

{m}                     表示m位

{m,}                    表示至少有m位

{m,n}                  表示在m和n位之间(书写时不要有空格),闭区间

==============================================代码如下=============================================


正则表达式_第1张图片

re模块的高级应用:

1、 serch:

执行正则表达式搜索并且在搜索结束后返回所匹配到的串,只返回第一次匹配的结果 返回值是一个迭代器。而findall则是返回所有匹配到的所有串。


2、find:

匹配所有的对象,返回一个列表


3、sub:

实现查找替换


4、split:

分割字符串,结果返回列表


5、finditer:

返回一个迭代器iterator,这个iterator返回顺序、内容和re.findall()相同


6、compile:

用来编译正则表达式模式字符串,并生成正则表达式对象。即改变正则表达式表达方法。

re.I(IGNORECASE)忽略大小写,括号内是完整的写法

re.M(MULTILINE)多行模式,改变^和$的行为

re.S(DOTALL)点可以匹配任意字符,包括换行符

re.L(LOCALE)做本地化识别的匹配,不推荐使用

re.U(UNICODE)使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag

re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释

=========================================================================

贪婪与懒惰:

在Python中正则默认是贪婪模式(个别语言中也可能是非贪婪模式),贪婪模式就是总会尝试匹配更多的字符。非贪婪模式即懒惰模式则相反 懒惰模式总尝试匹配最少的字符。

在*、?、+、{m,n}后面加上?,可以将贪婪模式变成非贪婪模式

你可能感兴趣的:(正则表达式)