python中正则表达式的详细介绍

本篇文章给大家带来的内容是关于python中正则表达式的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

正则

re = regular experssion
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

作用: 对于字符串进行处理, 会检查这个字符串内容是否与你写的正则表达式匹配

如果匹配, 拿出匹配的内容;
如果不匹配, 忽略不匹配内容;

编写正则的规则

立即学习“Python免费学习笔记(深入)”;

pattern 匹配的正则表达式
string 要匹配的字符串

三种查找方法

1). findall

登录后复制

import restr = 'hello sheen,hello cute.'pattern_1 = r'hello'pattern_2 = r'sheen'print(re.findall(pattern_1,str))    #['hello', 'hello']print(re.findall(pattern_2,str))    #['sheen']

登录后复制

2).match

登录后复制

match尝试从字符串的起始位置开始匹配,

如果起始位置没有匹配成功, 返回一个None;

如果起始位置匹配成功, 返回一个对象;

import restr = 'hello sheen,hello cute.'pattern_1 = r'hello'pattern_2 = r'sheen'print(re.match(pattern_1,str))           #print(re.match(pattern_1,str).group())   #返回match匹配的字符串内容,helloprint(re.match(pattern_2,str))           #None

登录后复制

3).search

登录后复制

search会扫描整个字符串, 只返回第一个匹配成功的内容;

如果能找到, 返回一个对象, 通过group方法获取对应的字符串;

import restr = 'hello sheen,hello cute.'pattern_1 = r'hello'pattern_2 = r'sheen'print(re.search(pattern_1,str))             #print(re.search(pattern_1,str).group())     #helloprint(re.search(pattern_2,str))             #print(re.search(pattern_2,str).group())     #sheen

登录后复制

特殊字符类

.: 匹配除了之外的任意字符; [.]
d:  digit–(数字), 匹配一个数字字符, 等价于[0-9]
D: 匹配一个非数字字符, 等价于[^0-9]
s:  space(广义的空格: 空格, , , ), 匹配单个任何的空白字符;
S:  匹配除了单个任何的空白字符;
w:  字母数字或者下划线, [a-zA-Z0-9_]
W: 除了字母数字或者下划线, [^a-zA-Z0-9_]

import re# .print(re.findall(r'.','sheenstar'))     #['s', 'h', 'e', 'e', 'n', 's', 't', 'a', 'r']#d#Dprint(re.findall(r'd','当前声望30'))       #['3', '0']print(re.findall(r'D','当前声望30'))       #['当', '前', '声', '望']#s#Sprint(re.findall(r's', '当前声望为30'))     #['', '', '']print(re.findall(r'S', '当前声望为30'))     #['当', '前', '声', '望', '为', '3', '0']#w#Wprint(re.findall(r'w','lucky超可爱!!'))           #['l', 'u', 'c', 'k', 'y', '超', '可', '爱']print(re.findall(r'W','lucky超可爱!!'))           #['!', '!']

登录后复制

766877681-5bc7043bddc4f_articlex.png

指定字符出现次数

匹配字符出现次数:

*: 代表前一个字符出现0次或者无限次;    d*,  .*
+: 代表前一个字符出现一次或者无限次;     d+
?: 代表前一个字符出现1次或者0次;   假设某些字符可省略, 也可以不省略的时候使用

第二种方式:

{m}: 前一个字符出现m次;
{m,}: 前一个字符至少出现m次;  * == {0,}; + ==={1,}
{m,n}: 前一个字符出现m次到n次; ? === {0,1}

import re#* 代表前一个字符出现0次或者无限次print(re.findall(r's*','sheenstar'))        #['s', '', '', '', '', 's', '', '', '', '']print(re.findall(r's*','hello'))            #['', '', '', '', '', '']#+ 代表前一个字符出现一次或者无限次print(re.findall(r's+','sheenstar'))        #['s', 's']print(re.findall(r's+','hello'))            #[]# ? 代表前一个字符出现1次或者0次print(re.findall(r'188-?', '188 6543'))     #['188']print(re.findall(r'188-?', '188-6543'))     #['188-']print(re.findall(r'188-?', '148-6543'))     #[]# 匹配电话号码pattern = r'd{3}[s-]?d{4}[s-]?d{4}'print(re.findall(pattern,'188 0123 4567'))      #['188 0123 4567']print(re.findall(pattern,'188-0123-4567'))      #['188-0123-4567']print(re.findall(pattern,'18801234567'))        #['188-0123-4567']

登录后复制

练习–匹配IP

可以从网上搜索正则表达式生成器,使用别人写好的规则,自己测试。

import re# | 表示或者pattern = r'(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d)$'print(re.findall(pattern,'172.25.254.34'))  #[('172', '25', '254', '34')]matchObj_1 = re.match(pattern,'172.25.254.34')if matchObj_1:    print('匹配项:',matchObj_1.group())                     #172.25.254.34else:    print('未找到匹配项')matchObj_2 = re.match(pattern,'172.25.254.343')if matchObj_2:    print('匹配项:',matchObj_2.group())                     else:    print('未找到匹配项')

登录后复制

3396363902-5bc7040980a0c_articlex.png

以上就是python中正则表达式的详细介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2260441.html

(0)
上一篇 2025年2月27日 05:37:43
下一篇 2025年2月23日 12:32:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python字符串拼接的方法总结(代码)

    本篇文章给大家带来的内容是关于python字符串拼接的方法总结(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = ‘Hello’+’ ‘+…

    编程技术 2025年2月27日
    000
  • Python如何发送?python发送email的三种方式介绍

    本篇文章给大家带来的内容是关于php如何使用swooletaskworker实现异步操作mysql(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Python发送email的三种方式,分别为使用登录邮件服务器、使用…

    2025年2月27日
    200
  • Python以太坊虚拟机实现Py-EVM的内容介绍

    本篇文章给大家带来的内容是关于python以太坊虚拟机实现py-evm的内容介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Py-EVM是用Python编写的以太坊虚拟机的新实现。目前github上695个star,正…

    编程技术 2025年2月27日
    200
  • Python中psutil库的使用介绍(详细)

    本篇文章给大家带来的内容是关于python中psutil库的使用介绍(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 介绍 psutil能够轻松实现获取系统运行的进程和系统利用率。 导入模块 import psuti…

    编程技术 2025年2月27日
    200
  • Python爬虫框架Scrapy的使用教程

    本篇文章给大家带来的内容是关于python爬虫框架scrapy的使用教程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强…

    编程技术 2025年2月27日
    200
  • python的基本数据类型有哪些?

    本篇文章给大家带来的内容是介绍python有哪些基本数据类型有哪些,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 1、python的一切都是对象,对象是包含属性和方法的一个整体。 2、数据类型的组成:身份 (内存地址,通过…

    编程技术 2025年2月27日
    200
  • python中什么是元组和集合 ?元组和集合的介绍

    本篇文章给大家带来的内容是python中什么是元组和集合 ?元组和集合的介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 学习python的小伙伴们经常会有这样一个疑问,既然有列表里,问什么还要有元组呢。因为列表是可变的…

    编程技术 2025年2月27日
    200
  • python中字典是怎么使用的?python字典的使用

    本篇文章给大家带来的内容是介绍python中字典是怎么使用的?python字典的使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 字典和集合一样是无序 的,不能通过索引来存取,只能通过键来存取。 字典的键必须是不可变…

    编程技术 2025年2月27日
    200
  • Python爬虫框架Scrapy的简单介绍

    本篇文章给大家带来的内容是关于python爬虫框架scrapy的简单介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用…

    编程技术 2025年2月27日
    200
  • Python开发Tornado网站之RequestHandler:接入点函数

    本篇文章给大家带来的内容是关于Python开发Tornado网站之RequestHandler:接入点函数,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 需要子类继承并定义具体行为的函数在requesthandler中被称…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论