python中使用正则

先import re

匹配:

re.match(r’\d’,’a123’,re.I)

从头开始匹配,如果从头开始不符合就不会往后搜索,则此例匹配无结果,只匹配一个。

例:

 * re.match(r'Hello','Hello,world!',re.I)
 #返回hello
 * re.match(r'world','Hello,world!',re.I)
 #返回None

参数一:是正则表达式,前面的r是防止\转义的,想详细了解的点我
参数二:是被搜索的文本
参数三:是匹配模式,文章最后有参数列表

返回:匹配不到返回None,匹配成功返回object,其方法group()返回匹配到的字符串

匹配规则里如果有括号的话就会分组输出。
例:t=re.search(r’(\d+)-(\d+)’,‘2004-959-559’)
>>> t.group()
‘2004-959’
>>> t.group(0)
‘2004-959’
>>> t.group(1) #一定哟啊注意1的时候才是子串
‘2004’
>>> t.group(2)
‘959’
而吧匹配规则改成r’\d+-\d+’的话再输出t.group(1)就会报错。

搜索:

re.search(r’\d’,’123’,re.I)

扫描整个字符串,直到找到一个匹配的,只匹配到一个就结束,匹配不到也结束。

例:

re.search(r'Hello','Hello,world! Hello,world!',re.I)
#返回hello
re.search(r'world','Hello,world! Hello,world!',re.I)
#返回world

和上面的函数就是搜索方式不一样,参数和输出都一样,

搜索全部:

t=re.findall(r’\d+’,’1-2-3-4’)

以list方式返回所有搜索到的结果
>>> t
[‘1’, ‘2’, ‘3’, ‘4’]
>>> t[0]
‘1’

替换:

num=’2004-959-559 # this is a phone numbe’

num=re.sub(r’#.*$’,”“,num)

参数一 正则表达式
参数二 string替换下来搜索到的文本
参数三 被搜索替换的原文本

返回类型 list
注意前面一定要写一个变量存放替换结果
运行后num=’2004-959-559 ‘

最小匹配:

就是匹配尽可能少的东西
这里是正则表达式里的技巧,当时吃过亏,记在这里。

例:

re.match(r'<.*>',"<a id='big'>my name is LiuJiJiang</a>",re.I)
#返回<a id='big'>my name is LiuJiJiang</a>
re.match(r'<.*?>',"<a id='big'>my name is LiuJiJiang</a>",re.I)
#返回<a id='big'>

就是在.*后加一个? 就可以了。

修饰符

修饰符描述
re.I使匹配对大小写不敏感
re.L做本地化识别(locale-aware)匹配
re.M多行匹配,影响 ^ 和 $
re.S使 . 匹配包括换行在内的所有字符
re.U根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。
Python使用正则表达式非常方便,因为Python内置了一个名为`re`模块来支持这个功能。以下是关于如何在Python中运用正则表达式的简要介绍: ### 导入 re 模块 首先需要导入 `re` 库,这是操作所有与正则相关的函数的基础步骤。 ```python import re ``` ### 编译正则表达式 虽然可以直接将字符串作为参数传递给`re`库里的各个方法,但更推荐的方式是先创建一个Pattern对象(即编译后的正则表达式),然后再进行匹配或其他处理。这样做有助于提升效率,尤其是在多次使用相同的模式时。 ```python pattern = re.compile(r'\d+') # 匹配数字序列 ``` ### 进行搜索和替换 #### search() 和 match() - `match()` 函数只检查是否从头开始匹配成功; - 而 `search()` 则会在整个字符串里寻找第一个符合条件的位置。 两者返回的结果都是Match对象,如果没有找到匹配项,则返回None。 ```python result = pattern.search('example123string') if result: print("Found:", result.group()) else: print("No match") ``` #### sub() 替换文本内容 如果你想把某些部分替换成别的东西,可以用sub()来做。它接受三个参数:一个是旧的模式、二是新的值以及三是目标字符串。 ```python new_text = re.sub(r'\s+', ' ', text) # 将连续空白符改为单空格 print(new_text) ``` 此外还有其他一些常用的函数如 findall(), split() 等等可以根据实际需求选择合适的方法去解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值