zoukankan      html  css  js  c++  java
  • Python中的正则表达式探秘1

    正则表达式中的特殊字符:

    $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ' ' 或 ' '。要匹配 $ 字符本身,请使用 $。
    ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
    + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
    . 匹配除换行符 之外的任何单字符。要匹配 . ,请使用 . 。
    [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
    将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。' ' 匹配换行符。序列 '\' 匹配 "",而 '(' 则匹配 "("。
    ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
    { 标记限定符表达式的开始。要匹配 {,请使用 {。
    | 指明两项之间的一个选择。要匹配 |,请使用 |。

    re.I

    re.IGNORECASE

    让正则表达式忽略大小写,这样一来,[A-Z]也可以匹配小写字母了。此特性和locale无关。

    re.L
    re.LOCALE
    让w、W、、B、s和S依赖当前的locale。

    re.M
    re.MULTILINE
    影响'^'和'$'的行为,指定了以后,'^'会增加匹配每行的开始(也就是换行符后的位置);'$'会增加匹配每行的结束(也就是换行符前的位置)。

    re.S
    re.DOTALL
    影响'.'的行为,平时'.'匹配除换行符以外的所有字符,指定了本标志以后,也可以匹配换行符。

    re.U
    re.UNICODE
    让w、W、、B、d、D、s和S依赖Unicode库。

    re.X
    re.VERBOSE
    运用这个标志,你可以写出可读性更好的正则表达式:除了在方括号内的和被反斜杠转义的以外的所有空白字符,都将被忽略,而且每行中,一个正常的井号后的所有字符也被忽略,这样就可以方便地在正则表达式内部写注释了。



    #!/usr/bin/python
    import re
     
    line = "Cats are smarter than dogs"
     
    matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)#在字符串前加上r 表示原生字符
     
    if matchObj:
       print "matchObj.group() : ", matchObj.group()
       print "matchObj.group(1) : ", matchObj.group(1)
       print "matchObj.group(2) : ", matchObj.group(2)
    else:
       print "No match!!"


  • 相关阅读:
    Android游戏音效实现
    对Android体系结构的理解--后续会补充
    实现软件版本新特性的具体步奏
    搜索栏的自定义
    有关导航栏的相关认识
    自定义tabBar中的注意事项
    多控制器的管理
    ios中创建控制器的几种方式
    利用高德地图官方提供的API实现模拟定位的功能
    IOS中利用NSKeyedArchiver进行数据的归档和恢复
  • 原文地址:https://www.cnblogs.com/cxsabc/p/10627708.html
Copyright © 2011-2022 走看看