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

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

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

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

>>> re.search(r'.','I love chenfeng!')
<re.Match object; span=(, ), 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=(, ), match='.'>

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

>>> re.search(r'\d','I love 123chenfeng.com!')
<re.Match object; span=(, ), match=''>
>>> re.search(r'\d\d\d','I love 123chenfeng.com!')
<re.Match object; span=(, ), match=''>
>>>

5、匹配IP地址

>>> re.search(r'\d\d\d\.\d\d\d.\d\d\d.\d\d\d','192.168.111.123')
<re.Match object; span=(, ), 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=''>
>>>

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]\d\d|2[0-4]\d|25[0-5]','')
<re.Match object; span=(0, 3), match=''>
>>> “[01]\d\d|2[0-4]\d” 中的“|”是“或”的含义,或者[01]\d\d成立,或者2[0-4]\d成立,或者25[05]成立,其中任何一个成立都是可以的
[01]\d\d : 百位数字是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'>
>>>
 

【Python57--正则1】的更多相关文章

  1. Javascript正则对象方法与字符串正则方法总结

    正则对象 var reg = new Regexp('abc','gi') var reg = /abc/ig 正则方法 test方法(测试某个字符串是否匹配) var str = 'abc123'; ...

  2. C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐. 这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢. 开始吧 ...

  3. Javascript 中 with 的替代方案和String 中的正则方法

    这几天在升级自己的MVVM 框架,遇到很多小问题,就在这里统一解决了. with 语法 在代码中,要执行这么一个函数 function computeExpression(exp, scope) { ...

  4. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  5. Java正则速成秘籍(一)之招式篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  6. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  7. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  8. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  9. [Python基础知识]正则

    import re str4 = r"^http://qy.chinahr.com/cvm/preview\?cvid=\w{24,25}&from=sou&gtid=\w{ ...

  10. iOS中使用正则

    一.什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式.正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分.它可以迅速地用极简单的方式 ...

随机推荐

  1. arrow

    1.c++(OOGP) 与数据结构与算法 1.一定要有一门自己比较熟悉的语言. 我由于使用C++比较多,所以简历上只写了C++.C++的特性要了解,C++11要了解一些,还有STL.面试中常遇到的一些 ...

  2. gitlab 源码安装=》rpm安装横向迁移(version 9.0)

    准备: 下载版本地址: https://packages.gitlab.com/gitlab/gitlab-ce 迁移环境: 源码安装的gitlab9.0.13 目标迁移至9.0.13 RPM安装的环 ...

  3. EL的隐含对象 (二)【访问作用域范围的隐含对象】

    在EL中提供了4个用于访问作用域范围的隐含对象,即pageScope.requestScope.sessionScope和applicationScope.应用这4个隐含对象指定所要查找的标识符的作用 ...

  4. Python记录6:函数2,函数参数

    # 一. 函数参数分为两大类 # 形参:在函数定义阶段括号定义的参数(变量名),称之为形式参数         #因为函数定义阶段只是用一个符号表示表示一个参数,并没有具体的值,所以称之为形式参数,形 ...

  5. PHP运行脚本

    PHP运行脚本 php.exe -f "php文件" php.exe -r "php代码" 例如:在cmd中 C:\Users\Administrator.SK ...

  6. codefroces 266

    D题说的是 你选定一个区间如[l r] 将这个区间内的每个数都加上1,然后求将这整个整个序列都变成h的方案数有多少种 没有一个位置会有超过1次方[  或者放 ] 考虑当前位置放的是什么 有5种 - 不 ...

  7. 【Elasticsearch学习之三】Elasticsearch 搜索引擎案例

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 elasticsearch-2.2.0 第一步:获取数据主流 ...

  8. SVN && BeyondCompare

    [1]设置内容 (1)三个步骤对应设置内容 1.1 "D:\Beyond Compare 4\BCompare.exe" %base %mine /title1=%bname /t ...

  9. NGINX的几个应用场景

    NGINX的几个应用场景 两个参考地址: NGINX的百度百科:https://baike.baidu.com/item/nginx/3817705?fr=aladdin NGINX的中文网站:htt ...

  10. flask 表单

    表单 在Web程序中,表单时和用户交互最常见的方式之一.用户注册.登录.撰写文章.编辑设置,无一不用到表单.不过,表单的处理不简单.要创建表单,验证用户输入的内容,向用户显示错误提示,还要获取并保存数 ...