(1) re.match\re.search

re.match(pattern,string.flag=0)                        #从第一个字母匹配,span()输出范围
re.search(pattern,string,flags=0)                      #区别为search搜索整个字符串

(2) re.compile

re.compile(pattern,flag=0)
#用来编辑正则表达式,返回一个正则表达式,用于match和search方法

例子:

import re
pattern = re.compile(r'\d+')                           #得到新的正则表达式pattern
result = pattern.search("asdf13 34etq 56')
print(result)
>>> <re.Match object; span=(4, 6), match='13'>         #注意输出的类型是 re.match 类型
result.group()                                         #group()的用法,作用是分组,groups()的作用是全部分组
>>> '13'

(3)re.findall

re.findall是搜索所有的符合条件的字符串,并返回一个列表

import re
pattern =  re.compile(r' \w+\s\w')
result1 = pattern.findall("asdf13 34etq 56")                #用法1,用来配合match和search
print(result1)
>>> ['13', '34', '56']
re.findall(string,pos,endpos)   #()左封闭,如(0,3)指124
例子:找到字符串里面所有的数字:```
import re
string = 'qwe123 rty456 uio789'
re.findall(r'\d+',string)
>>>['123', '456', '789']

例子:补充!!

(4)替换与补充

re.sub(pattern,replace,string,count=0,flags=0) #作用就是将搜索到的字符串替换为指定的字符串

import re
re.sub(r'\d\d\d','000','123qwe456qwe78ui',count=1)
>>>'000qwe456qwe78ui'

还可以替换为函数,如将字符串中的数字放大两倍,s = ‘A23G4HFD567’

import re
def double():补充!!!

(5)re.finditer

refinditer(pattern,string,flags=0)的作用是找到字符串,将其作为一个迭代器返回

import re
it = re.finditer(r'\d+','as24jjl453lj6l786l8')
for match in it:print(match.group())
>>>244536 7868

(6)re.split

re.split(pattern,string,maxsplit = 0,flags=0)的作用是以搜索到的字符串作为分割符

import re
re.split(r'\w+','runnoob, runnoob.')
>>> ['', ', ', '.']

练习:

(1)用正则表达式匹配IP地址172.20.68.170,191.125.1.1

import re
ip = '192.168.1.1'
trueIp =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])',ip)
print(trueIp)
>>> 192.168.1.1
'''
这种写法存在问题,即[01]{0,1}\d{0,1}\d会匹配到001的字符出来,而这样是不对的。故换另一种方式
'''

分析:
0~99正则表达式为[0-9]{0,1}\d
100~199表示为 1\d{2}
200~249表示为 2[0-4]\d
250~255表示为 25[0-5]
因此,ip地址的正则表达式为([0-9]{0,1}\d|1\d{2}| 2[0-4]\d|25[0-5].){3}[0-9]{0,1}\d|1\d{2}| 2[0-4]\d|25[0-5]

import re
ip = '192.170.1.1'
re.search(r'([01]{0,1}\d{0,1}\d\.){3}[01]{0,1}\d{0,1}\d',ip)
>>> <re.Match object; span=(0, 11), match='192.170.1.1'>

常用的正则表达式

正则表达式\ip地址匹配方法相关推荐

  1. 正则表达式——IP地址匹配

    目录 1.IP地址 2.IP地址格式 3.IP地址组成 4.IP地址正则表达式 1.IP地址 IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址) ...

  2. php验证ip地址的函数,php使用preg_match()函数验证ip地址的方法

    本文实例讲述了php使用preg_match()函数验证ip地址的方法.分享给大家供大家参考,具体如下: 代码一.正则实现preg_match("/^(?:25[0-5]|2[0-4]d|1 ...

  3. laravel 分词搜索匹配度_【地名地址】面向智慧城市的高精度地名地址匹配方法...

    点击上方蓝字关注我们↑↑↑↑    原 文 摘 要 针对智慧城市建设中各种业务数据对地名地址匹配准确度和效率不高的问题,本文提出一种面向智慧城市的高精度地名地址匹配方法.该方法在基于中文分词的地名地址 ...

  4. 5G MEC场景下移动终端IP地址固定方法研究

      摘要:  在企业通过5G.边缘计算.专网等新技术推进数字化改造的过程中,越来越多的终端和设备将通过5G接入,终端现有的动态IP地址获取方式无法满足企业实际生产管理的需要,因此有必要为企业提供在专网 ...

  5. 常用正则表达式-IP地址

    常用正则表达式-IP地址 1. IPv4地址 1. IPv4地址定义 参考百度百科 IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(即2的32次方)个地址. 通常使用点 ...

  6. java获取dns_Java 根据网址查询DNS/IP地址的方法

    说明: 本文不涉及底层的 DNS 协议, 直接使用Java平台提供的API进行操作. DNS也就是 Domain Name Service,即 域名服务. 我们知道, Java中与网址有关的类包括 j ...

  7. 老大说,网上这种获取真实IP地址的方法不对,我不信...

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:蔡永吉  来源:http://bit.ly/33H8RMm ...

  8. 简单介绍python3判断IP地址的方法

    这篇文章主要为大家详细介绍了python3判断IP地址的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python3判断IP地址的具体代码,供 ...

  9. python输入ip地址_python批量生成本地ip地址的方法

    本文实例讲述了python批量生成本地ip地址的方法.分享给大家供大家参考.具体分析如下: 这段代码用于在本地计算机上生成本地ip地址绑定到网卡,生成的是一个bat的批处理文件,运行此批处理文件,可以 ...

最新文章

  1. python怎么画函数图_可视化|Python绘制桑基图
  2. spark调优(一)-开发调优,数据倾斜,shuffle调优
  3. poj 1737男人八题之一 orz ltc
  4. Abstract Self-Balancing Binary Search Tree
  5. 抓取图像像素到int数组
  6. java数组深拷贝和浅拷贝_java List复制:浅拷贝与深拷贝
  7. 012 注解式异常处理器
  8. 20180908 2018-2019-2 《密码与安全新技术专题》第3周作业
  9. snprintf与sprintf的区别
  10. java c c++ 1000 套计算机毕业设计(论文+源码)
  11. 移动应用广告之商业变现的实现策略
  12. HDC.Cloud Day | 全国首场上海站告捷,聚开发者力量造梦、探梦、筑梦
  13. 网上经常听到的“终端”指的什么?
  14. 力扣刷题记录-回溯算法相关题目
  15. 前端学习打卡day05
  16. 【软考备战·五月模考】希赛网五月模考软件设计师上午题
  17. MySQL的左连接查询,只取出最大的一条数据
  18. Node.js安装,npm安装yarn步骤
  19. 使用Qiskit学习量子计算_4数学基础(上)
  20. psim什么版本能和matlab联合仿真,psim与simulink联合仿真步骤

热门文章

  1. 软件工程-案例分析作业
  2. python获取线程名称_Python-线程
  3. 2022-1-28 Leetcode 380.O(1)时间插入、删除和获取随机元素
  4. Linux 内核编译(三天吐血经历!)
  5. 围棋JAVA判断胜负_几张图教会你:围棋终局胜负计算
  6. FEN Self-Supervised Feature Enhancement Networks for Small Object Detection in Noisy Images
  7. 黑苹果 安装wifi(小米,360)
  8. 简单了解Ruby与自学教程
  9. linux服务器测试脚本,linux 服务器基础性能测试脚本
  10. ffmpeg 转换flv压缩大小_简单几步教你怎样使用FFmpeg工具快速的转换FLV视频为MP4格式...