解读python正则表达式括号问题

 更新时间:2022年09月24日 11:33:14   作者:zxdqdcxy  
这篇文章主要介绍了python正则表达式括号问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python正则表达式括号

python中re库函数的简单用法

re.findall(pattern,string)
  • 匹配所有符合正则表达式的字符,返回一个列表
re.search(pattern,string)
  • 查找第一个符合正则表达式的字符,返回一个Matcher对象。用group()或groups()方法取值
re.match(pattern,string)
  • 查找第一个符合正则表达式的字符,要求完全符合,返回一个Matcher对象。用group()或groups()方法取值

正则表达式中的圆括号()的作用是对字符或元字符分组。

我错把它的作用认为是将圆括号内的字符看成一个整体。

尽管在一些正则测试网站上,进行匹配时,把括号内的字符看成一个整体来匹配也能匹配到想要的结果。测试网站如:regex101等

然而在在写python程序的时候,会出现不是我想要的结果。

如果正则表达式中多出使用了圆括号进行分组的话。

在使用findall方法匹配结果就会只有分组的结果(即括号内表达式匹配的内容),而不是整个表达式所匹配的内容。

如果使用search方法匹配,对返回的Matcher对象调用group()方法可以获取完整的结果。但是在需要匹配多个结果时,还得用findall

所以在使用正则表达式时,若像我不太熟悉的话,避免使用圆括号来把一段表达式看成一个整体。

python正则表达式入门教程括号及字符

数据分析遇到字符串处理会有两个阶段涉及到正则表达式,一个是在数据库阶段一个是Python处理阶段。作为一个小白学习正则也遇到很多弯路和难理解的点,梳理梳理学习的过程。

hive里面正则表达式可以用regexp_extract()在select里进行返回指定要求的内容,也可以用regexp在where里进行指定要求的限制条件;

python里面re.findall()或者df.str.extract()(pandas功能);

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。学习正则需要记住两类知识点加上实际案例的联系就能很快的理解和掌握。

正则中语法规范:

括号区别

正则表达式中存在(),[],{}

1、():匹配小括号内的字符串,可以是一个,也可以是多个,常跟“|”(或)符号搭配使用,是多选结构的。() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串

例: 

string=‘我正在学习python3的正则表达式,现在的日期是2019-01-22’
目的给定指定字符串进内容进行精准匹配获取python
hiveselect regexp_extract(string,’(python)’,1) 返回结果为:python,1代码返回正则的第几个括号中的内容
pythonre.findall(’(python)’,string)返回结果为:python

2、【】:匹配字符组内的字符,比如咱们常用的[0-9a-zA-Z.*?!]等,在[]内的字符都是字符,不是元字符,比如“0-9”、“a-z”这中间的“-”就是连接符号,表示范围的元字符,如果写成[-!?*(]这样的话,就是普通字符例:

string=‘我正在学习python3的正则表达式,现在的日期是2019-01-22’
目的给定字符进内容匹配获取python
hiveselect regexp_extract(string,’[a-z]’,0) 返回结果为:python,0代码返回符合正则的内容,如果有小括号可以写1(如'([a-z]+)')
pythonre.findall(’[a-z]+’,string)返回结果为:python
目的给定字符进内容匹配获取日期2019-01-22
hiveselect regexp_extract(string,’([0-9]+.[0-9]+.[0-9]+)’,1) 返回结果为:2019-01-22
pythonre.findall(’[0-9]+.[0-9]+.[0-9]+’,string)返回结果为:2019-01-22
需求增加如果我要只需日期22这个部分
pythonre.findall(’[0-9]+.[0-9]+.([0-9]+)’,string)返回结果为:22,和上面的对比发现在最后一个[0-9]+外面加了一个小括号,有小括号就返回小括号里面的内容

3、{ }一般用来表示匹配的长度,比如 \s{3} 表示匹配三个空格,\s{1,3}表示匹配一到三个空格例:

string=‘我正在学习python3的正则表达式,现在的日期是2019-01-22’
目的取出日期数据部分结果为2019,01,22
pythonre.findall(’([0-9]{2,4})’,string) 返回结果为:[2019,01,22],python3中到3是一个数字,所以指定数据个数为2-4的就为日期部分的数字

常用正则表达式

匹配名匹配表达式例子
转义符\“n”匹配字符“n”。"\n"匹配一个换行符。串行"\\"匹配"\"而"\("则匹配"("
开始位置^"abc,bac"匹配b开头的bac[^b]([a-z]{3})
结束位置$"abce,abcd"匹配d结尾字母[a-z]+d$
表达式0次或多次* 
表达式1次或多次+ 
表达式0次或1次 
除\n任意字符. 
单词边界\b“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”
非单词边界\B“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”
换页符\f 
空白行\n\s*\r 
首尾空白字符^\s*\s*$
中文字符[\u4e00-\u9fa5] 
双字节字符(包含汉子在内)[^\x00-\xff] 
数字[0-9]或\d 
非数字\D 
小写字母[a-z] 
大写字母[A-Z] 
大小写字母[a-zA-Z] 
英文加数字a-z0-9 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python基于递归算法求最小公倍数和最大公约数示例

    Python基于递归算法求最小公倍数和最大公约数示例

    这篇文章主要介绍了Python基于递归算法求最小公倍数和最大公约数,结合实例形式分析了Python使用递归算法进行数值计算的相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • python+splinter实现12306网站刷票并自动购票流程

    python+splinter实现12306网站刷票并自动购票流程

    这篇文章主要为大家详细介绍了python+splinter实现12306网站刷票并自动购票流程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录

    Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录

    本篇文章主要介绍了Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录,具有一定的参考价值,有兴趣的可以了解下
    2017-09-09
  • Python利用柯里化实现提高代码质量

    Python利用柯里化实现提高代码质量

    柯里化(Currying)是函数式编程中的一个重要概念,它可以将一个多参数函数转化为一系列单参数函数的组合,本文将详细解释什么是柯里化,如何在Python中实现柯里化,感兴趣的可以了解下
    2024-01-01
  • Django 返回json数据的实现示例

    Django 返回json数据的实现示例

    这篇文章主要介绍了Django 返回json数据的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Pytorch 如何训练网络时调整学习率

    Pytorch 如何训练网络时调整学习率

    这篇文章主要介绍了Pytorch 如何训练网络时调整学习率的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • numpy中meshgrid和mgrid的区别和使用详解

    numpy中meshgrid和mgrid的区别和使用详解

    本文主要介绍了numpy中meshgrid和mgrid的区别和使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python3美化表格数据输出结果的实现代码

    python3美化表格数据输出结果的实现代码

    本文介绍了两种表格数据的打印工具:tabulate和prettytable的安装与基本使用方法,通过实例讲解的非常详细,需要的朋友参考下吧
    2021-04-04
  • python判断文件夹内是否存在指定后缀文件的实例

    python判断文件夹内是否存在指定后缀文件的实例

    今天小编就为大家分享一篇python判断文件夹内是否存在指定后缀文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 一文学会如何将Python打包后的exe还原成.py

    一文学会如何将Python打包后的exe还原成.py

    反编译的第一步就是要将exe文件转换成py文件,下面这篇文章主要给大家介绍了如何通过一文学会将Python打包后的exe还原成.py的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11

最新评论