一、正则表达式匹配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. 48.HTML---Flex 布局教程:实例篇

    你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我只列出代码,详细的语法解释请查阅<Flex布局教程:语法篇>.我的主要参考资料是Landon Schropp的文章和Solve ...

  2. MyBatis基础入门《三》Select查询集合

    MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...

  3. flask orm

    #查询        #查第一行    session.query(User.id,User.userName,User.password).first()        #查所有行    sessi ...

  4. sqlserver中查询表字段的sql语句

    sqlserver中的表信息字段信息这些东西也是放到系统表中的,以下sql语句用于查询某表的字段信息. select t1.id object_id,t1.name object_name,t2.va ...

  5. Unity shader学习之Alpha Test

    可以在fragment中使用cg的函数--clip来进行透明度测试. 函数定义如下: void clip(float4 x); void clip(float3 x); void clip(float ...

  6. Code Review(转)

    Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节.本文通过对Code Review的一些概念和经验的探讨,就如何进行C ...

  7. html5-内联框架

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. 获取MyBatis

    点击:获取MyBatis https://github.com/mybatis/mybatis-3/releases 点击:进入中文MyBatis的说明文档 http://www.mybatis.or ...

  9. django中orm的批量操作

    ORM批量操作 数据模型定义 from django.db import models class Product(models.Model): name = models.CharField(max ...

  10. 决策树算法——ID3

    决策树算法是一种有监督的分类学习算法.利用经验数据建立最优分类树,再用分类树预测未知数据. 例子:利用学生上课与作业状态预测考试成绩. 上述例子包含两个可以观测的属性:上课是否认真,作业是否认真,并以 ...