1.正则表达式在线验证工具:https://regex101.com/
2.常见语法:
写在正则表达式里面的普通字符都是表示:直接匹配它们。
比如 你下面的文本中,如果你要找所有的test,正则表达式就非常简单,直接输入test即可:
汉字也是一样,要寻找汉字,直接写正则表达式里面就可以了
但是有些特殊字符,术语叫metacharacters(元字符)
它们出现在正则表达式字符串中,不是表示直接匹配他们,而是表达一些特别的含义,这些特殊的元字符包括下面这些:
^ $ . * + ? = ! : | / ( ) [ ] { }
我们分别介绍一下它们的含义:
点—匹配所有字符
. 表示要匹配除了 换行符 之外的 单个 字符
比如,你要从下面的文本中,选择所有的颜色
苹果是绿色的 橙子是橙色的 香蕉是黄色的 乌鸦是黑色的
也就是要找到所有以 色 结尾,并且包括前面的一个字符的词语
就可以这样写正则表达式 .色
其中点代表了任意的一个字符,注意是一个字符
.色 合起来就表示要找任意一个字符后面是 色 这个字,合起来两个字的字符串
只要表达式正确,就可以写在python代码中,如下所示
content="苹果是绿色的 橙子是橙色的 香蕉是黄色的 乌鸦是黑色的" import re p=re.compile(r'.色') for one in p.findall(content): print(one) ''' 运行结果如下: 绿色 橙色 黄色 黑色
星号-重复匹配任意次
*表示匹配前面的子表达式任意次,包括0次
比如,你要从下面的文本中,选择每行逗号后面的字符串内容,包括逗号本身,注意,这里的逗号是中文的逗号
苹果,是绿色的 橙子,是橙色的 香蕉,是黄色的 乌鸦,是黑色的 猴子,
就可以这样写正则表达式 ,.*
* 紧跟在 . 后面,表示任意字符可以出现任意次,所以整个表达式的意思就是在逗号后面的所有字符,包括逗号
特别是最后一行,猴子逗号后面没有其他字符了,但是*表示可以匹配0次,所有表达式也是成立的
只要表达式正确,就可以写在python代码中,如下所示
content="苹果,是绿色的 橙子,是橙色的 香蕉,是黄色的 乌鸦,是黑色的 猴子,"' import re p=re.compile(r' ,.*') for one in p.findall(content): print(one) ''' 运行结果如下: ,是绿色的 ,是橙色的 ,是黄色的 ,是黑色的 , '''
注意, .*在正则表达式中非常常见,表示匹配任意字符任意次数
当然这个*前面不是非得是点,也可以是其它字符,比如