1.正则表达式在线验证工具:https://regex101.com/

2.常见语法:

写在正则表达式里面的普通字符都是表示:直接匹配它们。

比如 你下面的文本中,如果你要找所有的test,正则表达式就非常简单,直接输入test即可:

python正则表达式(. *)(一)-风君雪科技博客

汉字也是一样,要寻找汉字,直接写正则表达式里面就可以了

但是有些特殊字符,术语叫metacharacters(元字符)

它们出现在正则表达式字符串中,不是表示直接匹配他们,而是表达一些特别的含义,这些特殊的元字符包括下面这些:

^ $ . * + ? = ! : | / ( ) [ ] { }

我们分别介绍一下它们的含义:

点—匹配所有字符

. 表示要匹配除了 换行符 之外的 单个 字符

比如,你要从下面的文本中,选择所有的颜色

苹果是绿色的
橙子是橙色的
香蕉是黄色的
乌鸦是黑色的

 也就是要找到所有以 色 结尾,并且包括前面的一个字符的词语

就可以这样写正则表达式  .色

其中点代表了任意的一个字符,注意是一个字符

.色 合起来就表示要找任意一个字符后面是 色 这个字,合起来两个字的字符串

python正则表达式(. *)(一)-风君雪科技博客

只要表达式正确,就可以写在python代码中,如下所示

content="苹果是绿色的
橙子是橙色的
香蕉是黄色的
乌鸦是黑色的"
import re
p=re.compile(r'.色')
for one in p.findall(content):
    print(one)

'''
运行结果如下:
绿色
橙色
黄色
黑色 

 星号-重复匹配任意次

*表示匹配前面的子表达式任意次,包括0次

比如,你要从下面的文本中,选择每行逗号后面的字符串内容,包括逗号本身,注意,这里的逗号是中文的逗号

苹果,是绿色的
橙子,是橙色的
香蕉,是黄色的
乌鸦,是黑色的
猴子,

就可以这样写正则表达式  ,.*

* 紧跟在 . 后面,表示任意字符可以出现任意次,所以整个表达式的意思就是在逗号后面的所有字符,包括逗号

python正则表达式(. *)(一)-风君雪科技博客

python正则表达式(. *)(一)-风君雪科技博客

特别是最后一行,猴子逗号后面没有其他字符了,但是*表示可以匹配0次,所有表达式也是成立的

只要表达式正确,就可以写在python代码中,如下所示

content="苹果,是绿色的
橙子,是橙色的
香蕉,是黄色的
乌鸦,是黑色的
猴子,"'
import re
p=re.compile(r' ,.*')
for one in p.findall(content):
    print(one)

'''
运行结果如下:
,是绿色的
,是橙色的
,是黄色的
,是黑色的
, 
'''

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

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

python正则表达式(. *)(一)-风君雪科技博客