iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python正则入门知识点有哪些
  • 392
分享到

Python正则入门知识点有哪些

2023-06-27 10:06:39 392人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python正则入门知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、单字符匹配匹配某个字

今天小编给大家分享一下python正则入门知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、单字符匹配

匹配某个字符串

text = "abcdef"

ret = re.match('a',text)

print(ret.group())

点(.):匹配任意的字符(除了'\n'):

text = "\nabcdef"

ret = re.match('.',text)

print(ret.group())

\d:匹配任意的数字:

text = "abcdef"

ret = re.match('\d',text)

print(ret.group())

\D:匹配任意的非数字:

text = "cabedf"

ret = re.match('\D',text)

print(ret.group())

\s:匹配的是空白字符(包括:\n,\t,\r和空格):

text = "\nabdef"

ret = re.match('\s',text)

print("*"*30)

print(ret.group())

print("*"*30)

\S:非空白字符:

text = "ababdef"

ret = re.match('\S',text)

print("*"*30)

print(ret.group())

print("*"*30)

\w:匹配的是a-z和A-Z以及数字和下划线:

text = "1bc"

ret = re.match('\w',text)

print("*"*30)

print(ret.group())

print("*"*30)

\W:匹配的是和\w相反的:

text = "+bc"

ret = re.match('\W',text)

print("*"*30)

print(ret.group())

print("*"*30)

[] 组合的方式,只要满足中括号中的某一项都算匹配成功:

text = "cba"

ret = re.match('[1c]',text)

print("*"*30)

print(ret.group())

print("*"*30)

使用组合的方式 [0-9] \d:

text = "abc"

ret = re.match('[^0-9]',text)  # ^符号表示非

print("="*30)

print(ret.group())

print("="*30)

使用组合的方式实现 \w:

text = "+bc"

ret = re.match('[^a-zA-Z0-9_]',text)

print("="*30)

print(ret.group())

print("="*30)

二、多字符匹配

*:匹配 0 个或者多个字符:

text = "-cba"

result = re.match('\D*',text)

print(result.group())

+:匹配 1 个或者多个字符:

text = "1cba"

result = re.match('\w+',text)

print(result.group())

?:匹配前一个字符 0 个或者 1 个:

text = "-cba"

result = re.match('\w?',text)

print(result.group())

{m}:匹配 m 个字符:

text = "+1cba"

result = re.match('\w{2}',text)

print(result.group())

{m,n}:匹配 m-n 之间的个数的字符:

text = "1cba+"

result = re.match('\w{1,3}',text)

print(result.group())

三、正则表达式案例

验证手机号码:手机号码的规则是以 1 为开头,第二位可以是 34587,后面那 9 位可为任意数字。

text = "17751632549"

result = re.match("1[34587]\d{9}",text)

print(result.group())

验证邮箱:邮箱的规则是邮箱名称是用数字、英文字符、下划线组成的,然后是 @ 符号,接着为域名。

text = "w3cschool@163.com"

result = re.match("\w+@[a-z0-9]+\.[a-z]+",text)

print(result.group())

验证 URL:URL 的规则是前面是 Http 或者 https 或者是 ftp 然后再加上一个冒号,再加上两个斜杠,再后面就是可以出现任意非空白字符了。

text = "https://www.yisu.com/minicourse/play/quick_scrapy"

result = re.match("(http|https|ftp)://\S+",text)

print(result.group())

验证身份证:身份证的规则是,总共有 18 位,前面 17 位都是数字,后面一位可以是数字,也可以是小写的 x,也可以是大写的 X。

text = "35215669985213654x"

result = re.match("\d{17}[\dxX]",text)

print(result.group())

四、开始/结束/贪婪和非贪婪

^:以...开头:

text = "hello world"

result = re.search("^world",text)

print(result.group())

$:以...结尾:

text = "hello world"

result = re.search("hello$",text)

print(result.group())

text = ""

result = re.search("^$",text)

print(result.group())

|:匹配多个字符串或者表达式:

text = "https://www.yisu.com/minicourse/play/quick_scrapy"

result = re.match("(http|https|ftp)://\S+",text)

print(result.group())

贪婪和非贪婪:

text = "12345"

result = re.search("\d+?",text)

print(result.group())

案例 1:提取 html 标签名称:

text = "<h2>这是一级标题</h2>"

result = re.search("<.+?>",text)

print(result.group())

案例 2:验证一个字符是不是 0-100 之间的数字:

text = "100"

result = re.match("0$|[1-9]\d?$|100$",text)

print(result.group())

四、转义字符和原生字符串

Python 中的转义字符:

text = r"hello\nw3cschool"

print(text)

正则表达式中的转义字符:

text = "apple price is $9.9,range price is $8.8"

result = re.findall("\$\d+",text)

print(result)

原生字符串和正则表达式:

正则表达式的字符串解析规则:

  • 先把这个字符串放在 Python 语言层面进行解析。

  • 把 Python 语言层面解析的结果再放到正则表达式层间进行解析。

text = "\cba c"

result = re.match("\\\\c",text) # \\\\c =(Python语言层面)> \\c =(正则表达式层面)> \c

result = re.match(r"\\c",text) # \\c =(正则表达式层面)> \c

print(result.group())

五、分组

text = "apple price is $9.9,orange price is $8.8"

result = re.search('.+(\$\d+).+(\$\d+)',text)

print(result.groups())

group()/group(0):匹配整个分组

group(1):匹配第一个分组

group(2):匹配第二个分组

groups():获取所有的分组

六、re 中常用的函数

findall:查找所有满足条件的

text = "apple price is $9.9,orange price is $8.8"

result = re.findall(r'\$\d+',text)

print(result)

sub:根据规则替换其他字符串

text = "nihao zhongguo,hello w3cschool"

new_text = text.replace(" ","\n")

new_text = re.sub(r' |,','\n',text)

print(new_text)

html = """

<div class="job-detail">

     <p>1. 3年以上相关开发经验 ,全日制统招本科以上学历</p>

     <p>2. 精通一门或多门开发语言(Python,C,Java等),其中至少有一门有3年以上使用经验</p>

     <p>3. 熟练使用ES/mysql/mongodb/redis数据库;</p>

     <p>4. 熟练使用Django、tornado等WEB框架,具备独立开发 Python/Java 后端开发经验;</p>

     <p>5. 熟悉 linux / Unix 操作系统 </p>

     <p>6. 熟悉 tcp/IP,http等网络协议</p>

     <p>福利:</p>

     <p>1、入职购买六险一金(一档医疗+公司全额购买商业险)+开门红+全额年终奖(1年13薪,一般会比一个月高)</p>

     <p>2、入职满一年有2次调薪调级机会</p>

     <p>3、项目稳定、团队稳定性高,团队氛围非常好(汇合员工占招行总员工比例接近50%);</p>

     <p>4、有机会转为招商银行内部员工;</p>

     <p>5、团队每月有自己的活动经费,法定节假日放假安排;</p>

     <p>6、办公环境优良,加班有加班费(全额工资为计算基数,加班不超过晚上10点,平日加班为时薪1.5倍,周末加班为日薪2倍,周末加班也可优先选择调休,管理人性化)。</p>

 </div>

"""

new_html = re.sub(r'<.+?>',"",html)

print(new_html)

split:根据规则分割字符串

text = "nihao zhongguo,hello world"

result = re.split(r' |,',text)

print(result)

compile:编译正则表达式

text = "apple price is 34.56"

r = re.compile(r"""

 \d+ # 整数部分

 \.? # 小数点

 \d* # 小数部分

 """,re.VERBOSE)

result = re.search(r,text)

result = re.search(r"""

\d+ # 整数部分

\.? # 小数点

\d* # 小数部分

""",text,re.VERBOSE)

print(result.group())

如果想要在正则表达式中加注释,那么需要在正则表达式的函数最后加一个`re.VERBOSE`。

以上就是“Python正则入门知识点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python正则入门知识点有哪些

本文链接: https://www.lsjlt.com/news/309601.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python正则入门知识点有哪些
    今天小编给大家分享一下Python正则入门知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、单字符匹配匹配某个字...
    99+
    2023-06-27
  • 正则表达式入门知识点有哪些
    这篇文章主要为大家展示了“正则表达式入门知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“正则表达式入门知识点有哪些”这篇文章吧。1.正则表达式入门之什么是正则表达式基本说来,正则表达式...
    99+
    2023-06-17
  • linux入门知识点有哪些
    这篇文章给大家分享的是有关linux入门知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必...
    99+
    2023-06-13
  • Netty入门知识点有哪些
    本篇内容介绍了“Netty入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java NIO再说Netty 之前先简单了解下Ja...
    99+
    2023-06-19
  • FreeMarker入门知识点有哪些
    本文小编为大家详细介绍“FreeMarker入门知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“FreeMarker入门知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。FreeMarker是...
    99+
    2023-06-26
  • Redux入门知识点有哪些
    这篇文章主要为大家展示了“Redux入门知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redux入门知识点有哪些”这篇文章吧。Redux是什么?一个...
    99+
    2024-04-02
  • DIV入门知识点有哪些
    本篇内容介绍了“DIV入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!DIV入门简介DIV ...
    99+
    2024-04-02
  • PHP入门知识点有哪些
    小编给大家分享一下PHP入门知识点有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、 首要条件你首先必须要有一个正在工作着的支持PHP的web服务...
    99+
    2023-06-17
  • JRuby入门知识点有哪些
    本篇内容主要讲解“JRuby入门知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JRuby入门知识点有哪些”吧!一、JRuby入门引言Ruby是现在编程界讨论得正热火朝天的一种语言。这...
    99+
    2023-06-17
  • shell入门知识点有哪些
    这篇文章主要讲解了“shell入门知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell入门知识点有哪些”吧!背景一句话概括就是:shell编程就是对一堆Linux命令的逻辑化...
    99+
    2023-06-28
  • Git入门知识点有哪些
    今天小编给大家分享一下Git入门知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。版本控制什么是版本控制(版本迭代,...
    99+
    2023-06-29
  • ThinkPHP6.0入门知识点有哪些
    本篇内容主要讲解“ThinkPHP6.0入门知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ThinkPHP6.0入门知识点有哪些”吧!一.框架介绍ThinkPHP是一个免费开源的,快...
    99+
    2023-07-02
  • html入门知识点有哪些
    本文小编为大家详细介绍“html入门知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“html入门知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。   一、...
    99+
    2024-04-02
  • jQuery入门知识点有哪些
    这篇文章主要介绍“jQuery入门知识点有哪些”,在日常操作中,相信很多人在jQuery入门知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jQuery入门知识点有...
    99+
    2024-04-02
  • ReactJs入门知识点有哪些
    本篇内容主要讲解“ReactJs入门知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ReactJs入门知识点有哪些”吧!   一、ReactJS简介...
    99+
    2024-04-02
  • JSF入门知识点有哪些
    本篇内容主要讲解“JSF入门知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JSF入门知识点有哪些”吧!JSF是java web 的标准,可能会取代jsp 时代。JSF直译过来就是Ja...
    99+
    2023-06-17
  • Django入门知识点有哪些
    本篇内容介绍了“Django入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django入门:基本知识熟悉python和dja...
    99+
    2023-06-18
  • TypeScript入门知识点有哪些
    这篇文章主要介绍“TypeScript入门知识点有哪些”,在日常操作中,相信很多人在TypeScript入门知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Type...
    99+
    2024-04-02
  • Redis入门知识点有哪些
    这篇文章主要介绍“Redis入门知识点有哪些”,在日常操作中,相信很多人在Redis入门知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis入门知识点有哪些”...
    99+
    2024-04-02
  • VB入门知识点有哪些
    本篇内容介绍了“VB入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、VB入门教程VB与Basic VB之所以叫做“Visu...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作