正则表达式是一种强大的文本模式匹配工具,用于在字符串中查找和操作特定模式的文本。Python 提供了 re 模块来支持正则表达式操作。
1.正则表达式匹配数字
用 \d 来匹配数字,有多少个数字就相应的输入几个\d
用 \s 来匹配空格,^匹配字符串的开头,$匹配字符串的结尾
用( )括起来的地方为匹配字符串的group(1) group(2),re.match只能从字符串的开头进行匹配
2.正则表达式匹配文字
用 \D 来匹配文字,有多少个文字就相应的输入几个\D
3.正则表达式匹配字母
用 \w 来匹配字母,有多少个字母就相应的输入几个\w
4.正则表达式匹配多个数字、文字、字母
以上的例子我们可以看出一个弊端,当我们有多个数字、文字、字母的时候就会很麻烦,所以我们可以用一个方法,把多个 \d、\D、\w 换成 \d+ 、\D+ 、\w+
这样就能更加简便的匹配字符串,用以上方法还可以匹配一段文字中的数字。
5.贪婪匹配(匹配尽可能多的字符)
在贪婪匹配中,.* 会匹配尽可能多的字符,在此处把前面的文字以及2143给匹配了,只留下个满足 \d 的数字5,所以最后输出的结果就只有5了。
6.非贪婪匹配
现在我把 .* 改为 .*? 就变为非贪婪匹配,可以看到输出结果为21435。
7.re.search()和re.findall()
re.search()是查找整个字符串,返回第一个匹配到的对象。它和re.match的区别在于即便匹配到的对象不在起始位置,也会返回,所以最好使用re.search。
re.findall()则是用于查找所有匹配的子串,与re.search()有一定区别,输出方式也不一样。