简单介绍python中使用正则表达式的方法

Posted wx5a20cf699eb6f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单介绍python中使用正则表达式的方法相关的知识,希望对你有一定的参考价值。

这篇文章主要为大家详细介绍了python中使用正则表达式的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

在python中使用正则表达式,主要通过下面的几个方法

search(pattern, string, flags=0)

扫描整个string并返回匹配pattern的结果(None或对象)

有匹配的字符串的话返回一个对象(包含符合匹配条件的第一个字符串),否则返回None

import re
#导入正则库

content = Hello 1234567 Hello 666
#要匹配的文本
res = Hello\\s
#正则字符串

result = re.search(res, content)
if result is not None:
print(result.group())
#输出匹配得到的字符串 hello(返回的得是第一个hello)

print(result.span())
#输出输出匹配的范围(匹配到的字符串在原字符串中的位置的范围)

res1 = Hello\\s(\\d)(\\d+)
result = re.search(res1, content)
print(result.group(1))
#group(1)表示匹配到的第一个组(即正则字符串中的第一个括号)的内容
print(result.group(2))

findall(pattern, string, flags=0)

扫描整个context并返回匹配res的结果(None或列表)

有匹配的字符串的话返回一个列表(符合匹配条件的每个子字符串作为它的一个元素),否则返回None

import re

res = Hello\\s
results = re.findall(res, content)
if results is not None:
print(results)
#输出: [hello,hello]

res1 = Hello\\s(\\d)(\\d+)
results = re.findall(res1, content)
if result is not None:
print(results)
# 当正则字符串中出现括号时,所得到列表的每个元素是元组
# 每个元组的元素都是依次匹配到的括号内的表达式的结果
#输出: [(1,1234567),(6,666)]

sub(pattern, repl, string, count=0, flags=0)

可以来修改文本

用将用pattern匹配string所得的字符串替换成repl

import re

content = 54aK54yr5oiR54ix5L2g
res = \\d+
content = re.sub(res, , content)
print(content)

compile(pattern, flags=0)

将正则表达式res编译成一个正则对象并返回,以便复用

import re

content1 = 2019-12-15 12:00
content2 = 2019-12-17 12:55
content3 = 2019-12-22 13:21
pattern = re.compile(\\d2:\\d2)
result1 = re.sub(pattern, , content1)
result2 = re.sub(pattern, , content2)
result3 = re.sub(pattern, , content3)
print(result1, result2, result3)

flags的一些常用值

re.I 使匹配对大小写不敏感

re.S 使.匹配包括换行符在内的所有字符

import re
re.compile(res, re.I)
#如果res可以匹配大写字母,那它也可以匹配相应的小写字母,反之也可

re.compile(res,re.S)
#使res中的.字符可以匹配包括换行符在内的所有字符

本文地址:​​https://www.linuxprobe.com/python-linux-sister.html​

以上是关于简单介绍python中使用正则表达式的方法的主要内容,如果未能解决你的问题,请参考以下文章

用于 unicode 大写单词的 Python 正则表达式

python第一篇:正则表达式的方法简单归纳

Python 深入正则表达式

有没有一种简单的方法可以在 Oracle 8 上转换句子案例中的字符串?还是我应该使用正则表达式?

更强大的python正则表达式模块 -- regex

python字符串如何去掉英文字母以外的字符