美文网首页Python小哥哥
python正则表达式(1)--特殊字符

python正则表达式(1)--特殊字符

作者: 我爱学python | 来源:发表于2019-04-27 16:42 被阅读6次

    正则表达式—特殊表达式含义

    正则表达式的字母和数字表示他们自身,但多数字母和数字前加一个反斜杠时会拥有不同的含义。 

    下面列出了正则表达式模式语法中的特殊元素。

    1.普通字符集

    1) \w              匹配字母数字及下划线

    2) \W              匹配非字母数字及下划线

    3) \s               匹配任意空白字符,等价于 [\t\n\r\f].

    4) \S               匹配任意非空白字符

    5) \d               匹配任意数字,等价于 [0-9]

    6) \D              匹配任意非数字

    7) \1...\9            匹配第n个分组的内容。

    8) [a-zA-Z0-9]    匹配任何字母及数字

    2.数量字符集

    用在字符或分组符(...)之后,默认贪婪匹配,如果想抑制贪婪匹配,需在数量字符后加?,例如:\w+?

    1) .    匹配任意字符,除了换行符,当re.DOTALL标记被指定时,可以匹配包括换行符的任意字符

    2)  *        匹配前一个字符0次1次或多次

    3)  +        匹配前一个字符1次或多次

    4)  ?        匹配前一个字符0次或1次

    5)  {m}     匹配前一个字符m次

    6)  {m,n}   匹配前一个字符m到n次

    7)  {m,}     匹配前一个字符至少m次

    8)  {,n}      匹配前一个字符0到n次,最多n次

    3.边界匹配符

    1)  ^       匹配字符串开头,如果是多行则匹配每一行的开头

    2)  [^]       在[...]中,^表示否定,如非字母[^a-zA-Z],非数字[^0-9]

    3)  $       匹配字符串或一行的结尾,如果是多行匹配模式,则每一行的结尾

    4)  \A       仅匹配字符串的开始,同^

    5)  \b        匹配一个单词的边界,也就是指单词和空格间的位置

    6)  \B       等价于[^\b]表示匹配非单词边界

    7)  \Z       匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。

    8)  \z        匹配字符串结束

    4.逻辑匹配符

    1)  |(或)

        匹配 | 左右任意一种正则表达式,如果左边表达式匹配上,匹配结束,不再匹配右边的正则表达式,该符号一般放在()中使用,如果没在圆括号中则它的范围是整个正则表达式

    2)  分组 (...)

        后向引用,用()括起来的正则表达式将被作为一个分组,从正则表达式的左边依次算起,有多少个左括号'(',就有 多少个分组,分组的编码从1依次加1,无论是括号中嵌套括号,并且分组表达式作为一个整体,后可接数量词。

    3)  \<number>

        引用分组匹配到的分组编号为<number>的字符串 如:\1...\9

    4)  (?P<name>...)

        命名分组,除了默认的分组编号外再指定一个别名分组

        注意:P是大写

    5)  (?P=name)

        引用别名为name的分组匹配,这个是在正则表达式中引用,表示匹配重复的字符串,也可以使用编号引用。

        注意:P是大写

    5.特殊匹配符

    1)  (?imx)     正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。

    2)  (?-imx)      正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。

    3)  (?:...)        匹配到的括号内字符串不作为分组

    4)  (?!pattern)       前向否定断言语法,表示否定开头

              只能用在正则表达式的开头,pattern是匹配模式,它后面的内容需要不匹配 该正则表达式才匹配成功

    5)  (?<!pattern)   后向否定断言语法,表示否定结尾

               前面的内容需要不匹配该pattern模式才匹配成功

    6)  (?=pattern)   前向肯定断言语法.

              需要匹配pattren模式才能匹配成功,表示肯定前面的字符内容

    7)  (?<=pattern)    后向肯定断言语法

             需要匹配pattern模式才能匹配成功,表示肯定后面的字符内容

    8)  (?#...)           #后面的内容将被作为注释而忽略

    相关文章

      网友评论

        本文标题:python正则表达式(1)--特殊字符

        本文链接:https://www.haomeiwen.com/subject/uevknqtx.html