1.首先来看一下search()和find()的区别

import re

s1 = "2221155"

#search 字符串第一次出现的位置

print(re.search("1",s1))

print(s1.find("1"))

它们的输出分别是:

search():

函数返回的是查找的字符在字符串中的位置

find():

函数返回的也是在字符串中的位置

目前来看两者并没有什么区别,但是**search()**函数的高级操作还在后边哦!

2.search查找ip

那么search()函数如何查找字符串中的ip地址呢来看例子

先说一种比较单一化的查找:

str1 = "192.168.111.123"

ip = re.search(r"ddd.ddd.ddd.ddd",str1)

print(str1)

输出结果:

这里要首先定义好ip的格式 xxx.xxx.xxx.xxx再进行查找

但是这里知道ip是没有固定格式的,首先他的范围是 0-255,但是他可能是1位数,二位数或者三位数,这里就需要进阶了,来看下边的代码:

①确定单个数范围在0-255:

re.search(r"[01]dd|2[0-4]d|25[0-5]]",str)

这句代码里边的参数的意思是(| 为“或”):

第一位如果是0,1的话,后边两位随便取值

第一位如果是2的话,那第二位就得是0到4,第三位随意取值

第一位第二位如果是2和5的话,那么第三位只能是0到5了

这样就能得到字符串里第一个 0-255的值

②如果要多找几个呢?

再举个小例子:

str2 = "192168111123"

num = re.search(r"([01]dd|2[0-4]d|25[0-5]){3}",str2)

print(num)

运行结果:

给查找的字符在后边加一个{n} n代表你要找几次,看例子我找的是3次,所以最后找到的值是3个挨着的0-255的数。那么重点来啦

③找到ip

看代码:

str_ip = "ssss192.168.1.1aaaa"

ip = re.search(r"(([01]{0,1}d{0,1}d|2[0-4]d|25[0-5]).){3}([01]{0,1}d{0,1}d|2[0-4]d|25[0-5])",str_ip)

print(i

结果:

到此这篇关于Python-re中search()函数的用法详解(查找ip)的文章就介绍到这了,更多相关Python search()函数内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

python search用法,Python-re中search()函数的用法详解(查找ip)相关推荐

  1. mysql中find_in_set_mysql中find_in_set()函数的使用详解

    首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 . 现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那 ...

  2. java asynchronize_Java 中synchronize函数的实例详解

    Java 中synchronize函数的实例详解 java中的一个类的成员函数若用synchronized来修饰,则对应同一个对象,多个线程像调用这个对象的这个同步函数时必须等到上一个线程调用完才能由 ...

  3. python中int函数的用法浅析_Python中int()函数的用法浅析

    int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...

  4. python迭代器创建序列_Python 中迭代器与生成器实例详解

    Python 中迭代器与生成器实例详解 本文通过针对不同应用场景及其解决方案的方式,总结了Python中迭代器与生成器的一些相关知识,具体如下: 1.手动遍历迭代器 应用场景:想遍历一个可迭代对象中的 ...

  5. python获取键盘按键_Python中捕获键盘的方式详解

    python中捕获键盘操作一共有两种方法 第一种方法: 使用pygame中event方法 使用方式如下:使用键盘右键为例 if event.type = pygame.KEYDOWN and even ...

  6. python decimal类型转化_python中的decimal类型转换实例详解

    [Python标准库]decimal--定点数和浮点数的数学运算 作用:使用定点数和浮点数的小数运算. Python 版本:2.4 及以后版本 decimal 模块实现了定点和浮点算术运算符,使用的是 ...

  7. Pandas中read_excel函数参数使用详解+实例代码

    目录 前言 一.数据展示 1.io 2.sheet_name 3.header 4.names 5.index_col 6.usecols 7.squeeze 8.dtype 9.engine 10. ...

  8. C++中sprintf()函数的使用详解

    本篇文章是对C++中sprintf()函数的使用进行了详细的分析介绍,需要的朋友参考下 在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望.由于sprintf 跟printf ...

  9. 整理:C++中sprintf()函数的使用详解

    资料一 描述 C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串. 声明 下面是 sprintf() ...

最新文章

  1. 如何下python 的pⅰl_[Ubuntu] 如何在 Lubuntu 安装 python-spidermonkey
  2. 开发IOT WiFi设备时,需要测试的几种情况
  3. php模块下载,douphp下载中心模块修改版
  4. 查看Unity工程版本
  5. XGBoost对比RandomForest、GBDT、决策树、SVM,XGB+LR精度还能提升
  6. 盘点关于IDEA的几个调试的实用技巧
  7. dynamodb java_使用Java更新DynamoDB项
  8. 研究僵局–第4部分:修复代码
  9. C语言一趟冒泡交换最小值,C语言单链表冒泡排序为啥以下代码实现不了?
  10. 大一计算机应用的实验报告,大一《计算机应用基础》实验报告1.doc
  11. fastjson:map转json字符串、json字符串转map、map根据key名拿value、JSONArray转list
  12. cop2000计算机组成原理,COP2000计算机组成原理实验系统.pdf
  13. 计算机网络——报文格式
  14. 推荐下载使用:COMODO Internet Security V5.0.157302.1066 多国语言版(含:简体中文)
  15. 使用 Cloudflare 进行域名跳转(重定向)
  16. 禁止迅雷极速版被强制升级为迅雷x
  17. java后端判断图片尺寸(GB,MB,KB形式),图片色彩(黑白照或彩色照片),图片构图(横图竖图方图)
  18. 敏捷开发--实际工作流程梳理
  19. 探针一号的SQL注入学习笔记
  20. Qt --- QByteArray强大用途

热门文章

  1. asp.net 文件下载的五种方式
  2. Matlab直方图显示y值
  3. ajax asp后台获取不到post数据,asp.net webapi [FromBody]string 获取不到ajax post的数据的解决方法...
  4. 深度学习环境搭建第一步----Ubuntu 安装(win7 + win10)
  5. 【Mybatis从入门到实战教程】第一章 Mybatis 入门
  6. Handheld Multi-Frame Super-Resolution论文理解
  7. “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,
  8. Android高级面试题精选
  9. cobaltstrike如何安装使用(包含CS联动MSF详细用法!)? (゚益゚メ) 渗透测试
  10. 用windows系统下的DOS命令将腾讯视频客户端下载的qlv文件转换成MP4格式(图文详解)