什么是正则表达式

正则表达式是对字符串操作的一种逻辑方式,就是用实现定义好的一些特定字符及这些特定字符的组 合,组成一个规则字符串,这个规则字符串就是表达对字符串的逻辑,给定一个正则表达式和另一个 字符串,通过正则表达式从字符串我们想要的部分。

re 标准库

Python正则表达式主要由re标准库提供,拥有了基本所有的表达式。

语法:re.compile(pattern, flags=0)

pattern 指的是正则表达式。flags是标志位的修饰符,用于控制表达式匹配模式

示例1:

import re
s = "this is test string"
pattern = re.compile('this')
result = pattern.match(s)
print(result.group())
#匹配成功后,result对象会增加一个group()
方法,可以用它来获取匹配结果

语法:re.match(pattern, string, flags=0)

示例2:

result = re.match('this', s) 
print(result.group())

小结:案例1好处是先使用compile把正则表达式编译一个对象, 方便再次使用。案例2更直观。

代表字符

“r”表示原始字符串,有了它,字符串里的特殊意义符号就会自动加转义符。

示例:

s = "123\\abc"
result = re.match(r"123\\abc", s)
print(result)

代表数量

代表边界

代表分组

贪婪模式与非贪婪模式

贪婪模式:尽可能最多匹配

非贪婪模式:尽可能最少匹配,一般在量词(*、+)后面加个?问号就是非贪婪模式。

示例:

s = "hello 666666"
result = re.match("hello 6+", s) # 贪婪匹配
print(result)
result = re.match("hello 6+?", s) # 非贪婪匹配
print(result)

re 标准库其他方法

标志位