表示数量
在编程中,有时需要爬出我们所需要的字符,而且它们可能挨着在一起,也可能分布在代码的各个角落,我们今天解决一下要摘出数量的问题。
- 字符: * 星号编程中,表示可以输出全部,也可以一个都不输出,比如 import re ret = re.search(’ .* ',‘erdgfrewr’),这时,就可以输出全部的字符串,当字符串一个都没有的话,也可以一个都不输出。
- 字符:+ 加号在编程中,表示出现至少一次,也可以是无限次,比如说 import re ret = re.search (’[a-zA-Z0-9]+[\w]*’, 'i like China),这个就是说在后面的字符串中 ,找出 a-zA-Z0-9 和 所有的文字 ,输出至少一个。
- 字符: 问号是输出一个,对于加了问号的,输出时,只能输出一个字符,要不然就一个都没有。
- 字符: {m} 匹配前一个字符出现 m 次, import re ret = re.search (’[a-zA-Z0-9]{4}*’, 'i like China),这串代码,就表示输出四个符合前面条件的四个字符。
- 字符: {m,}表示至少输出m个字符
- 字符: {m,n}表示输出m - n 个字符
表示边界
表示边界的字符有表示结束的,表示开始的,表示匹配单词的边界,非单词的边界。
^ 表示从什么开始
$ 表示从什么结束
\b 匹配一个单词的边界
\B 匹配一个非单词的边界
匹配分组
|
用竖线分开的,表示匹配其中的一个
(ab)
将括号中字符作为一个分组
\num
引用分组num匹配到的字符串
(?P)
分组起别名
(?P=name)
引用别名为name分组匹配到的字符串
高级用法
高级用法就是用别的表达式,
search
findall
sub
介绍:
match 是我们常用的,都是从开头来匹配字符,
search 用法,让我们不用从字符串的开头来进行匹配,直接找到我们正则表达式里需要的字符,但是在匹配中,如果遇到和正则表达式的规则不符合,就会停止,后面还有符合的,也不会去匹配了
findall 这个用法,会让我们匹配到的字符呈现出列表的状态,而且如果匹配到和表达式中不符合的,也会继续向后找,只到完全匹配出来为止。
sub 将匹配到的数据进行替换
这个就厉害了,当我们想把字符串中的数据进行替换时,我们就可以用sub 的形式, import re ret = re.sub(r’English’,‘China’,‘i love English’’),这时,就可以将English替换成China咯,表达式中的r 是原始字符的意思。