python-re

re

  re--正则表达式--字符串处理

  使用re.compile()可以得到一个RegexObject对象

  RegexObject的有两种使用方式。①作为参数传给处理函数;②调用RegexObject方法处理字符串。

  重点:match和search的区别。findall和finditer的区别。

     单次匹配(match,search)->Match和多次匹配(findall和finditer)->list的区别。

     正则表达式符号和语法规则。

     Match的方法span和group和groups的区别。

     flags参数标记:re.l--不区分大小写

     ---------------------------------------------------------------------------------------------------------

     sub的repl的函数用法。(?P<extract_str_name><express>)前面一部分是标记。

     repl参数传递一个函数,函数需要定义一个参数用来接收<express>匹配到的Match,在函数中用group('extract_str_name')使用这个值。处理后返回结果替换。

1.re.match和re.search

  match特点:pattern必须从string的起始位置开始描述(pattern的起始表达和string不匹配直接返回异常)

  search特点:pattern参数可以从任意位置开始匹配。

  group方法:返回pattern匹配到的整个字符串

  groups方法:返回元组,包含pattern内每个(<express>)匹配到的字符串小组。(pattern表达式中没有(<express>)返回的是空元组)

  span方法:以索引号的形式返回

  无匹配结果返回None

3.re.findall和re.finditer

  findall参数:pattern,string,pos,endpos

  pos/endpos:限制起始位置和结束位置

  finditer参数:pattern,string。以迭代器形式返回

5.re.sub

  sub参数:pattern,repl,sring,count

  repl:repl替换pattern表达式中的(<express>)匹配到的字符串对象。可以通过count限制替换次数

  count:0表示替换所有,默认为0。

6.re.split

  split参数:pattern,string,maxsplit

  maxsplit:0为不限制次数,默认为0

  用pattern匹配到的str,切割成列表

7.re.compile

  参数:pattern

  将一个pattern字符串编译成正则表达式对象

8.正则表达式符号:

字符 -----------------------------------------------------------------------------------------------------

  字符类表示符号:任意(.),数字(/d),空白符(/s),数字字母加下划线(/w)。

  字符类:[a-zA-Z0-9_] = /w    [^a-zA-Z0-9_] = /W    [Pp]  ...

  (<express>) 括号小表达式

  字符类:为单个字符表示法。括号小组表达式:为长字符串表示法。

  都可以通过[*+?]限制次数

次数 -------------------------------------------------------------------------------------------------------

  * 任意次数  + 正数次数  ? 布尔0/1次数  {n,m}自定义次数

  (作用于前一组字符(单字符/长字符串)对象,单个字符或者一个括号小组表达式)

位置 -------------------------------------------------------------------------------------------------------

  匹配位置标记:^标记匹配开头,标记匹配结尾$

总结 -------------------------------------------------------------------------------------------------------

  中括号表示字符类,部分字符类有专门的表示方式,四种匹配次数限制。

posted @ 2020-09-08 23:54  花兒向陽開  阅读(136)  评论(0编辑  收藏  举报