zoukankan      html  css  js  c++  java
  • 正则表达式

    先介绍一款在线测试工具 http://tool.chinaz.com/regex/

    说到正则,只和字符串相关,因为要匹配的为只是个可变的值

    1.字符组

    [0-9],表示0-9这个范围的数字,和0123456789一样

    [a-z] , 小写字母a到z

    [A-Z] ,大写字母a到z

    [0-9a-fA-F] ,匹配数字及大小写字母

    2.字符

    .    匹配除换行符以外得任意字符

    w  匹配字母或数字或下划线 (不够严谨尽量少用,个人感觉[0-9a-fA-F_]最合适)

    W 匹配非数字字母下划线

    s   匹配任意空白符

    S   匹配非空白符

    d    匹配数字

    D   匹配非数字

       匹配一个换行符

        匹配一个制表符

       匹配一个单词的结尾

    ^    匹配字符串的开始

    $    匹配字符串得结尾

    a|b  匹配字符a或者b  (较长得字符组要写在前面,写到后面永远匹配不到)

    ()    匹配括号内的一个表达式,也表示一个组

    [...]  匹配字符中的字符

    [^...] 匹配除了字符串中字符的所有字符

    3.量词

    *          重复零次或更多次

    +    重复一次或者更多次

    ?         重复零次或一次

    {n}      重复n次

    {n,}     重复n次或更多次

    {n.m}  重复n次到m次

    4.转义字符

    在正则表达式中,有很多有特殊意义的是元字符,比如d和s等,如果要在正则中匹配正常的"d"而不是"数字"就需要对""进行转义,变成'\'。

    在python中,无论是正则表达式,还是待匹配的内容,都是以字符串的形式出现的,在字符串中也有特殊的含义,本身还需要转义。所以如果匹配一次"d",字符串中要写成'\d',那么正则里就要写成"\\d",这样就太麻烦了。这个时候我们就用到了r'd'这个概念,此时的正则是r'\d'就可以了。

    5.贪婪匹配

    贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

    在量词后面加上?,转换成非贪婪模式

    *?  重复任意次,但尽可能少重复

    +? 重复一次或更多次,但尽可能少重复

    ?? 重复0次或一次,但尽可能少重复

    {n,m}?  重复n次到m次,但尽可能少重复

    {n,}?     重复n次以上,但尽可能少重复

  • 相关阅读:
    Python3 session实现带密码访问网站后台
    Python3实现利用url请求百度翻译
    Python3 parse模块
    Python3 requests模块
    Nignx gzip 文件压缩
    Cnetos7 Yum安装Ningx
    喜极而泣,我终于学会了Nginx!
    Centos7 给磁盘创建Lvm虚拟盘
    Pyhton Tkinter图形工具(原创)
    nginx四种均衡策略
  • 原文地址:https://www.cnblogs.com/beihan/p/9432815.html
Copyright © 2011-2022 走看看