zoukankan      html  css  js  c++  java
  • 【Python57--正则1】

    一、正则表达式匹配IP地址

    1、search()方法:用于在字符串中搜索正则表达式模式第一次出现的位置

    >>> import re
    >>> re.search(r'chen','I love chenfeng')
    <re.Match object; span=(7, 11), match='chen'>
    >>> 
    
    '''
    |-- span(7,11):chen 下标在7到11的位置出现
    '''

    2、正则表达式中的“.”表示除了换行符中的所有字符 即:通配符

    >>> re.search(r'.','I love chenfeng!')
    <re.Match object; span=(0, 1), match='I'>

    >>> re.search(r'chen.','I love chen.feng.com')
    <re.Match object; span=(7, 12), match='chen.'

    3、匹配点号如何做处理呢,只需要在点号前面加上反斜杠“”,这时候点号不代表任何字符,只代表点号自己

    >>> re.search(r'.','I love chen.feng.com!')
    <re.Match object; span=(11, 12), match='.'>

    4、匹配数字:反斜杠+d   :  " d  "

    >>> re.search(r'd','I love 123chenfeng.com!')
    <re.Match object; span=(7, 8), match='1'>
    >>> re.search(r'ddd','I love 123chenfeng.com!')
    <re.Match object; span=(7, 10), match='123'>
    >>> 

    5、匹配IP地址

    >>> re.search(r'ddd.ddd.ddd.ddd','192.168.111.123')
    <re.Match object; span=(0, 15), match='192.168.111.123'>
    >>>
    这样匹配的问题是:
    1、d匹配的数字范围是0~9,而IP的最大范围是255
    2、这里要求每一组的IP地址必须是三个数字,如果遇到192.168.1.1这样的IP地址就没办法匹配成功

    改进的方法:
    1>、用中括号" [] "创建字符类
    举例匹配 I love chenfeng.com  字符串中的l
    >>> re.search(r'[a-z]','I love 123chenfeng.com!')
    <re.Match object; span=(2, 3), match='l'>
    
    
    举例匹配“I love 123chenfeng.com ” 字符串中的1
    >>> re.search(r'[0-9]','I love 123chenfeng.com!')
    <re.Match object; span=(7, 8), match='1'>
    >>> 

     2>、限定重复匹配的次数 可以用大括号:{}

    >>> re.search(r'ab{3}c','abbbc')
    <re.Match object; span=(0, 5), match='abbbc'>
    >>> re.search(r'ab{3}c','abbbbbbc')
    匹配不了的可以用范围进行匹配
    >>> re.search(r'ab{0,9}c','abbbbbbc')
    <re.Match object; span=(0, 8), match='abbbbbbc'>
    >>> 

    3、匹配0~255的数字

    >>> re.search(r'[01]dd|2[0-4]d|25[0-5]','188')
    <re.Match object; span=(0, 3), match='188'>
    >>>
    
    “[01]dd|2[0-4]d” 中的“|”是“或”的含义,或者[01]dd成立,或者2[0-4]d成立,或者25[05]成立,其中任何一个成立都是可以的
    [01]dd : 百位数字是0或者1的话,十位和各位可以是任何数字
    2[0-4]d :百位是2,十位是0~5,则各位可以是任何数字
    25[05] :百位是2,十位是5,则各位只能是0~5的数字

    4、匹配IP地址

    >>> re.search(r'(([01]{0,1}d{0,1}d|2[0-4]d|25[05]).){3}([01]{0,1}d{0,1}d|2[0-4]d|25[05])','191.168.1.1')
    <re.Match object; span=(0, 11), match='191.168.1.1'>
    >>>
     
  • 相关阅读:
    关于Windows程序设计的初步认识
    C++虚函数作用原理(二)——类的继承
    史诗级Java资源大全中文版
    马上加薪!测试,你的职业发展...
    你不知道的接口自动化测试!
    69道Spring面试题和答案,简单明了无套路
    大厂都在问的多线程面试题,你不了解下嘛?
    现代Java进阶之路必备技能——2019 版
    80后程序员降薪6K,预感中年危机来袭,准备跳槽却碰壁
    微服务、分布式、高并发都不懂,你拿什么去跳槽?
  • 原文地址:https://www.cnblogs.com/frankruby/p/10138326.html
Copyright © 2011-2022 走看看