003、【byhy】 常见语法—— * 表示匹配前面的子表达式 任意次,包括0次
一、常见语法—— 星号(*) 重复匹配任意次
*
表示匹配前面的子表达式 任意次,包括0次。
比如,你要从下面的文本中,选择每行逗号后面的字符串内容,包括逗号本身。注意,这里的逗号是中文的逗号。
苹果,是绿色的
橙子,是橙色的
香蕉,是黄色的
乌鸦,是黑色的
猴子,
就可以这样写正则表达式 ,.*
紧跟在 . 后面, 表示 任意字符可以出现任意次, 所以整个表达式的意思就是在逗号后面的 所有字符,包括逗号
验证一下,如下图所示
特别是最后一行,猴子逗号后面没有其它字符了,但是*表示可以匹配0次, 所以表达式也是成立的。
只要表达式正确,就可以写在Python代码中,如下所示:
import re """ 1、 星号(*) 重复匹配任意次 """ content = ''' 苹果,是绿色的 橙子,是橙色的 香蕉,是黄色的 乌鸦,是黑色的 猴子, ''' p = re.compile(r',.*') for one in p.findall(content): print(one)
执行结果如下:
,是绿色的
,是橙色的
,是黄色的
,是黑色的
,
Process finished with exit code 0
注意, .* 在正则表达式中非常常见,表示匹配任意字符任意次数。
当然这个 * 前面不是非得是 点 ,也可以是其它字符,比如: