×

正则表达式教程python

正则表达式教程python(python正则表达式管道符的使用)

admin admin 发表于2023-09-16 16:34:33 浏览35 评论0

抢沙发发表评论

本文目录

python正则表达式管道符的使用

有几个问题1、你要测试是否匹配多个,应该用findall,而不是search,search只找第一个匹配的。2、\d{8} 你写成了d{8}3、{6}是精确6位,{6,}才会匹配到8位的12345678

如何用python正则

(1)re.match()函数

re.match 尝试从字符串的开始匹配一个模式。

函数语法:

re.match(pattern, string, flags=0)

函数参数说明:

参数

描述

pattern    匹配的正则表达式    

string    要匹配的字符串。    

flags    标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。    

匹配成功re.match方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法

描述

group(num=0)    匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。    

groups()    返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。    

(2)re.research()函数

re.search匹配整个字符串,直到找到一个匹配。

函数语法:

re.search(pattern, string, flags=0)

函数参数说明:

参数

描述

pattern    匹配的正则表达式    

string    要匹配的字符串。    

flags    标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。    

匹配成功re.search方法方法返回一个匹配的对象,否则返回None。

我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

匹配对象方法

描述

group(num=0)    匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。    

groups()    返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。    

(3)实例

我这里采用re.search()函数解决的问题。

测试数据集为购物网站用户评论

实例代码:

 view plain copy

  • # -*-coding:utf-8 -*-  

  • import sys  

  • import re  

  • reload(sys)  

  • text = open(’JD_DFB_comments.txt’)  

  • line = text.readline()  

  • #i = 0   

  • while line:  

  • #i = i+1  

  • #re.search匹配整个字符串,直到找到一个匹配。  

  • n1 = re.search(r’(要(是|能)(.*)就(更|好|再|直观|完美|太)(.*)了)’,line)  

  • n2 = re.search(r’(如果)(.*)就(更|好|再|直观|完美|太)(.*)了’,line)  

  • #打开将要写入的数据  

  • data = open(’aa.txt’,’a’)  

  • if n1:  

  • #print line  

  • data.write(line)      #写入匹配到的数据  

  • #print i              记录匹配结果所在的行数  

  • #print n1.group()     #等于print line  

  • print n1.group(3)     #打出第三个括号里的内容  

  • if n2:  

  • #print n2.group()  

  • print n2.group(2)          

  • line = text.readline()  

  • text.close()  

  • 阅读更多

个人分类: Python语言

想对作者说点什么? 我来说一句

Python中re的match、search、findall、finditer区别

python 正则表达式是什么

正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就易如反掌了。

正则表达式的大致匹配过程是:

1、依次拿出表达式和文本中的字符比较。

2、如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。

3、如果表达式中有量词或边界,这个过程会稍微有一些不同。

Python 基础教程 第10章,正则表达式匹配问题

import rea = re.compile(r’\’))

scope是在全局变量里保存正则匹配出来的x,y,z变量,存到全局变量里去;

这本书的案例在except SyntaxError:后面少了点代码,只提供注释,前面其实已经提到用exec赋值了,只是代码里没有体现出来,我完善了下这个应该能看懂了,还有,正则已经把替换掉了,换成x,y,z对应的值