
import re
str = '谢谢您,关注我:阿P的哲学';
result = re.match('阿P的哲学', str)#rp:match
print(result)
result2 = re.match('谢谢您', str)#rp:match
print(result2)
result3 = re.search('阿P的哲学', str)#rp:search
print(result3)
result4 = re.search('谢谢您', str)#rp:search
print(result4)
result5 = re.search('谢谢您啊', str)#rp:search
print(result5)
输出:
None
None
search
和match差不多用法,从字符串中进行搜索
import re
print(re.search(r'test','123test123test'))
#
print(re.findall(r'test','123test123test')) #以列表的方式返回
#与上面的显示结果不同已经给出了说明是以表表的方式返回的
# ['test', 'test']
findall
从字面意思上就可以看到,findall是寻找所有能匹配到的字符,并以列表的方式返回
import re
print(re.match(r'\d\d','123test123test'))
#
print(re.search(r'\d\d','123test123test'))
#
re.s
findall中另外一个属性re.S
在字符串a中,包含换行符\n,在这种情况下
- 如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。
- 而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。
如下要寻找test.*123的数据,因为test和123在不同的行,如果没加re.s的话,他会在每一个进行匹配查找而不是将字符串作为一个整体进行查找
import re
a = """aaatestaa
aaaa123"""#1:在字符串a中,包含换行符\n
#2:a = """aaatestaa后面注意不要有空格(因为粘贴过来的原因),不然输出结果会不一样
print(re.findall(r'test.*123',a))
#[] 显示结果为空,因为没有找到,它找的是下面这个内容
print(re.findall(r'test.*123',a,re.S))
#['testaa\naaaa123']
sub
查找字符串中所有相匹配的数据进行替换
sub(要替换的数据,替换成什么,要替换的数据所在的数据)#RP:这样写通俗易懂啊
import re
print(re.sub('php','python','php是世界上最好的语言——php'))
#输出 "python是世界上最好的语言——python"
split
对字符串进行分割,并返回一个列表
import re
s = "itcase,java:php-php3;html"
print(re.split(r",",s)) #以,号进行分割
#['itcase', 'java:php-php3;html']
print(re.split(r",|:|-|;",s)) #以,或者:或者-或者;进行分割
# ['itcase', 'java', 'php', 'php3', 'html']
print(re.split(r",|:|-|%",s)) #找不到的分隔符就忽略
# ['itcase', 'java', 'php', 'php3;html']
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)