zoukankan      html  css  js  c++  java
  • 正则表达式用法简介

    正则表达式是对字符串操作的一种逻辑公式,使用它对字符串进行匹配和过滤.

    在线测试工具http://tool.chinaz.com/regex/

    1. 字符组
    字符组很简单用[ ]括起来. 在[ ]中出现的内容会被匹配. 例如:[abc] 匹配a或b或c
    如果字符组中的内容过多还可以使用- , 例例如: [a-z] 匹配a到z之间的所有字母 [0-9]
    匹配所有阿拉伯数字

    2. 简单元字符

    . 匹配  除换行符以外的任意字符
    w 匹配   字母或数字或下划线
    s 匹配   任意的空白符
    d 匹配   数字
    匹配⼀一个换行行符
    匹配⼀一个制表符
     匹配⼀一个单词的结尾
    ^ 匹配字符串的开始
    $ 匹配字符串的结尾
    W 匹配⾮非字母或数字或下划线
    D 匹配⾮非数字
    S 匹配⾮非空白符
    a|b 匹配字符a或字符b
    () 匹配括号内的表达式,也表示一个组
    [...] 匹配字符组中的字符
    [^...] 匹配除了了字符组中字符的所有字符

    3. 量词

    * 重复零次或更多次
    + 重复⼀一次或更多次
    ? 重复零次或⼀一次
    {n} 重复n次
    {n,} 重复n次或更更多次
    {n,m} 重复n到m次

    4. 惰性匹配和贪婪匹配
    在量词中的*, +,{} 都属于贪婪匹配. 就是尽可能多的匹配到结果.

    在使用 . *后面如果加了? 则是尽可能的少匹配. 表示惰性匹配

    5. 分组
    在正则中使用()进行分组.

    6.转义

    在正则表达式中, 有很多有特殊意义的是元字符, ⽐比如 和s等,如果要在正则中匹
    配正常的" "⽽而不是"换行符"就需要对""进行转义, 变成'\'.在python中, 无论是正则表达式, 还
    是待匹配的内容, 都是以字符串的形式出现的, 在字符串中也有特殊的含义, 本身还需要转
    义. 所以如果匹配一次" ", 字符串串中要写成'\n', 那么正则里就要写成"\\n",这样就太麻烦了.
    这个时候我们就用到了了r' '这个概念, 此时的正则是r'\n'就可以了.

  • 相关阅读:
    HDU 4389 X mod f(x)
    SRM 400(1-250pt, 1-500pt)
    FZU 2113 Jason的特殊爱好
    POJ 3208 Apocalypse Someday
    HDU 4734 F(x)
    HDU 3555 Bomb
    HDU 2089 不要62
    poj2488(A Knight's Journey)
    poj3267(The Cow Lexicon)
    poj2513(Colored Sticks)
  • 原文地址:https://www.cnblogs.com/ppf3678/p/9767276.html
Copyright © 2011-2022 走看看