当前位置 博文首页 > python re正则表达式模块(Regular Expression)

    python re正则表达式模块(Regular Expression)

    作者:admin 时间:2021-07-10 18:52

    模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等

    复习一下基本的正则表达式吧

     .:匹配除了换行符以为的任意单个字符

     *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式

    +:匹配位于+之前的一个或者多个字符

     |:匹配位于|之前或者之后的字符

     ^:匹配行首

     $:匹配行尾

     ?:匹配位于?之前的零个或者一个字符,不匹配多个字符

     \:表示 \ 之后的为转义字符

     []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字

     ():将位于()之内的的内容当作一个整体

     {}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)

    python中以\开头的元字符:

    特殊序列符号
    意义
    \A
    只在字符串开始进行匹配
    \Z
    只在字符串结尾进行匹配
    \b
    匹配位于开始或结尾的空字符串
    \B
    匹配不位于开始或结尾的空字符串
    \d
    相当于[0-9]
    \D
    相当于[^0-9]
    \s
    匹配任意空白字符:[\t\n\r\r\v]
    \S
    匹配任意非空白字符:[^\t\n\r\r\v]
    \w
    匹配任意数字和字母:[a-zA-Z0-9]
    \W
    匹配任意非数字和字母:[^a-zA-Z0-9]

    正则表达式语法表

    语法 意义 说明
    "." 任意字符
    "^" 字符串开始 '^hello'匹配'helloworld'而不匹配'aaaahellobbb'
    "$" 字符串结尾 与上同理
    "*" 
    0 个或多个字符(贪婪匹配)
    <*>匹配<title>chinaunix</title>
    "+"
    1 个或多个字符(贪婪匹配
    与上同理
    "?"
    0 个或多个字符(贪婪匹配
    与上同理
    *?,+?,??
    以上三个取第一个匹配结果(非贪婪匹配 <*>匹配<title>
    {m,n}
    对于前一个字符重复m到n次,{m}亦可
    a{6}匹配6个a、a{2,4}匹配2到4个a
    {m,n}?
    对于前一个字符重复m到n次,并取尽可能少
    ‘aaaaaa'中a{2,4}只会匹配2个
    "\\"
    特殊字符转义或者特殊序列
    []
    表示一个字符集 [0-9]、[a-z]、[A-Z]、[^0]
    "|"
    A|B,或运算
    (...)
    匹配括号中任意表达式
    (?#...)
    注释,可忽略
    (?=...)
    Matches if ... matches next, but doesn't consume the string.
    '(?=test)'  在hellotest中匹配hello
    (?!...)
    Matches if ... doesn't match next.
    '(?!=test)'  若hello后面不为test,匹配hello
    (?<=...) 
    Matches if preceded by ... (must be fixed length).
    '(?<=hello)test'  在hellotest中匹配test
    (?<!...)
    Matches if not preceded by ... (must be fixed length).
    '(?<!hello)test'  在hellotest中不匹配test

    匹配的标志和含义

    标志 含义
    re.I 忽略大小写
    re.L 根据本地设置而更改\w,\W,\b,\B,\s,\S的匹配内容
    re.M 多行匹配模式
    re.S 使“.”元字符匹配换行符
    re.U 匹配Unicode字符
    re.X 忽略需要匹配模式中的空格,并且可以使用"#"号注释
    上一篇:没有了
    下一篇:没有了