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'>
    >>>
     
  • 相关阅读:
    html调用php
    MySQL安装下载
    MySQL默认安装下载
    MySQL安装下载
    搭建php环境
    面试官:聊聊对Vue.js框架的理解
    TCP、UDP、HTTP、SOCKET之间的区别与联系
    HTTP/1、HTTP/2、HTTP/3
    git教程
    从jQuery到Serverless,前端十四年挖了多少坑?
  • 原文地址:https://www.cnblogs.com/frankruby/p/10138326.html
Copyright © 2011-2022 走看看