我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python正则表达式的基本原理是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python正则表达式的基本原理是什么

这篇文章主要讲解了“Python正则表达式的基本原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python正则表达式的基本原理是什么”吧!

    正则表达式是什么?

    正则表达式,又称规则表达式,(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE),它是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如在 Perl 中内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由 Unix 中的工具软件普及开的。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。

    1.实例引入

    说了一大堆废话,大家可能还是云里雾里的,我们通过实例来说明一下,我们可以用正则表达式测试工具,或者python都可以,首先,我们输入一段文本。

    hello,my name is Tina,my phone number is 123456 and my web is http://tina.com.

                                   [a-zA-z]+://[^\s]*

    我们就可以获取网页链接,也就是文本中的url,是不是很神奇?

    这是因为它有自己的匹配规则,部分如下。

    模式描述
    .任意字符
    *0个或者多个表达式
    +一个或者多个表达式

      关于更多的匹配规则可自行查阅。

    ?,*,+,\d,\w 都是等价字符

    ?等价于匹配长度{0,1}

    *等价于匹配长度{0,}

    +等价于匹配长度{1,}

    \d 等价于[0-9]

    \D 等价于[^0-9]

    \w 等价于[A-Za-z_0-9]

    \W 等价于[^A-Za-z_0-9]

    2.match()

            这里介绍一个常用的匹配方法——match(),向他传入要匹配的字符串以及正则表达式,就可以检测这个正则表达式是否匹配字符串。

    匹配目标

    res = re.match('hello\s(\d+)sword')

    贪婪匹配

    res = re.match('hello.*(\d+)sword')

    3.findall()

    我们最常用的就是这个,我们看看这个是如何使用的。

    import re useData = str(input('请输入字符串数据:')) '''匹配字符串中的数字,+是匹配前面的子表达式一次或多次'''digital = re.findall('\d+',useData) print(digital)

    我们看看运行结果

    Python正则表达式的基本原理是什么

     findall()函数是返回所有匹配到的字符串,返回值的数据类型为列表。

    常用符号

    我们再来说说正则表达式的常用符号吧。

    “.”字符为匹配任意单个字符。

    “\”字符为转义字符。

    “[…]”为字符集。

    “(.*?)” 是python爬虫最常用的一个字符,叫贪心算法,可以匹配任意的字符。

     下面我们看一个示例代码。

    import re a=‘xxixxjshdxxlovexxsfhxxpythonxx' data=re.findall(‘xx(.*?)xx') print(data)

    我们运行一下,看下效果。

    运行结果
    [‘I’ ,‘love’,‘python’]

    特殊字符

     所谓特殊字符,就是一些有特殊含义的字符,比如讲 runoo*b 中的 ,简单的说就是表示任何字符串的意思。如果要查找字符串中的 * 符号,则需要对 * 进行转义,即在其前加一个 \,runo*ob 匹配字符串 runo\*ob。

     许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

    特别字符描述
    $

    匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n’ 或 ‘\r’。要匹配 $ 字符本身,请使用 $。

    ()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    *匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
    +匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
    .匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。

     概念说了一大堆,大家可能也记不住,我直接说几个案例,大家就能明白其他的道理。

    这是某网的HTML,部分片段如下:

    <span class=“price”>§<i>123</i></span> <span class=“price”>§<i>133</i></span> <span class=“price”>§<i>156</i></span> <span class=“price”>§<i>189</i></span>

       大家会发现只有中间的一段不一样,而不一样的数据就是我们想要的,我们怎么用正则表达式提取出来呢.

    <span class=“price”>§<i>(.*?)</i></span>

    就可以了,我们看看效果吧。

    123
    133
    156
    189

    感谢各位的阅读,以上就是“Python正则表达式的基本原理是什么”的内容了,经过本文的学习后,相信大家对Python正则表达式的基本原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    Python正则表达式的基本原理是什么

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

    下载Word文档

    猜你喜欢

    Python正则表达式的基本原理是什么

    这篇文章主要讲解了“Python正则表达式的基本原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python正则表达式的基本原理是什么”吧!正则表达式是什么?正则表达式,又称规则表达
    2023-07-06

    Python正则表达式基本原理

    正则表达式是一个特殊的符号系列,它可以帮助我们检查某个字符串和某种模式匹配。在python中,re库拥有全部的正则表达式的功能。想了解更多的小伙伴可以参考阅读本文
    2023-05-15

    正则表达式基本语法是什么

    正则表达式是一种用于匹配字符串模式的工具,它由普通字符(例如字母、数字和符号)和特殊字符(称为元字符)组成。正则表达式的基本语法包括以下几个部分:普通字符:普通字符是指字母、数字和一些特殊字符,它们在正则表达式中直接表示自身。元字符:元字符
    正则表达式基本语法是什么
    2024-03-06

    Python正则表达式使用的基本步骤是什么

    这篇文章主要介绍“Python正则表达式使用的基本步骤是什么”,在日常操作中,相信很多人在Python正则表达式使用的基本步骤是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python正则表达式使用的基
    2023-06-02

    js正则表达式基本语法是什么

    JavaScript中正则表达式的基本语法如下:1. 字面量形式(常用):使用斜杠`/`将正则表达式包裹起来,例如`/pattern/`。2. 构造函数形式:使用`RegExp`对象来创建正则表达式,例如`new RegExp('patte
    2023-08-16

    Java正则表达式的基本用法是什么

    Java正则表达式是一种强大的字符串匹配工具,用于匹配和操作字符串的模式。它可以用于搜索、替换、验证和提取字符串中的特定模式。Java正则表达式的基本用法包括以下几个方面:1. 匹配:使用正则表达式可以检查一个字符串是否与指定的模式匹配。可
    2023-08-12

    Python正则表达式的基本用法

    本篇内容介绍了“Python正则表达式的基本用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!正则表达式中特殊的符号:“.” 表任意字符“^
    2023-06-17

    正则表达式原理及常用示例是什么

    这期内容当中小编将会给大家带来有关正则表达式原理及常用示例是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、正则的含义正则表达式就是用来操作字符串的一种逻辑公式二、正则表达式的应用场景数据分析时数据
    2023-06-26

    什么指的是正则表达式

    这篇文章给大家分享的是有关什么指的是正则表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 什么是正则表达式基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express
    2023-06-17

    什么是Perl正则表达式

    这篇文章将为大家详细讲解有关什么是Perl正则表达式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Perl正则表达式一、什么是Perl正则表达式一个Perl正则表达式,就是用某种模式去匹配一类字符串的一个
    2023-06-17

    什么是VB.NET正则表达式

    这篇文章主要介绍了什么是VB.NET正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.什么是VB.NET正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的
    2023-06-17

    grep正则表达式是什么

    这篇文章主要为大家展示了“grep正则表达式是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“grep正则表达式是什么”这篇文章吧。正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相
    2023-06-28

    PHP中正则表达式中的原子是什么

    这篇文章给大家介绍PHP中正则表达式中的原子是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。正则表达式中的原子什么是原子:组成正则表达式的最小单位就是原子。原子有哪些内容组成:正常的字母都是原子,所有可见字符都是原
    2023-06-15

    Flex正则表达式规则是什么

    这篇文章主要介绍Flex正则表达式规则是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.Flex正则表达式规则1.1普通字符字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达
    2023-06-17

    Java正则表达式基础语法是什么

    Java正则表达式基础语法如下:普通字符:普通字符包括大小写字母、数字和一些特殊字符,例如"abc123"。元字符:元字符是一些具有特殊含义的字符,需要进行转义才能表示其原始含义,例如"\d"表示匹配数字。字符类:用方括号[]表示,可以
    Java正则表达式基础语法是什么
    2024-03-08

    web正则表达式基础与常用验证表达式是什么

    这篇文章主要介绍了web正则表达式基础与常用验证表达式是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇web正则表达式基础与常用验证表达式是什么文章都会有所收获,下面我们一起来看看吧。一、正则元字符是一些在
    2023-07-02

    正则表达式内部机理是什么

    这篇文章主要介绍正则表达式内部机理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!9. 单词边界 元字符<<\b>>也是一种对位置进行匹配的“锚”。这种匹配是0长度匹配。有4种位置被认为是“单词边界”:1) 在字
    2023-06-17

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录