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

 

注意, .* 在正则表达式中非常常见,表示匹配任意字符任意次数。

当然这个 * 前面不是非得是 点 ,也可以是其它字符,比如:

 

posted @ 2021-09-08 08:06  空-山-新-雨  阅读(388)  评论(0编辑  收藏  举报