- """
- 正则表达式的主要功能就是匹配字符串
- """
- import re
- # 基本用法
- ret = re.findall('world', "hello world**Worldworld") # 查找制定字符串,以list形式返回
- print(ret)
- """
- 原字符
- """
- # 1. '.' 通配符:代表任意字符,一个点一个字符
- ret = re.findall('w...d', "hello world")
- print(ret) # ['world']
- ret = re.findall('w...d', "hello w\nrld")
- print(ret) # [] 除了\n其他都行,当然也可以通过修改findall的第三个参数去修改成连\n都能匹配
- # 2. '^' 尖角符:必须从字符串的起始位置开始匹配,不考虑后续字符串中是否存在
- ret = re.findall('^w...d', "hello world")
- print(ret) # []
- ret = re.findall('^w...d', "worldhello world")
- print(ret) # ['world']
- # 3. '$' 只从最后开始匹配
- ret = re.findall('w...d', "hello world!!")
- print(ret) # ['world']
- ret = re.findall('w...d$', "hello world!!")
- print(ret) # []
- ret = re.findall('w...d$', "hello world!!world")
- print(ret) # ['world']
- # *************************************************************
- # 4. '*' 重复匹配 允许*之前的一个字符重复多次
- ret = re.findall('hello*world', 'hellooooooworld')
- print(ret) # ['hellooooooworld']
- ret = re.findall('hello.*world', 'hello@@sssworld') # 如果我使用通配符'.'他就能匹配任意字符
- print(ret) # ['hello@@sssworld']
- # 5. '+' 也是重复匹配 但是至少得有一个
- ret = re.findall('hello*world', 'hellworld')
- print(ret) # ['hellworld']
- ret = re.findall('hello+world', 'hellworld')
- print(ret) # []
- # 也就是说'+'号之前的o,在目标字符串里必须出现一次,但是'*'号允许一次也不出现
- # 6. '?' 还是重复匹配,但是只能是0次或者1次多了就不行
- ret = re.findall('hello?world', 'hellworld')
- print(ret) # ['hellworld']
- ret = re.findall('hello?world', 'helloworld')
- print(ret) # ['helloworld']
- ret = re.findall('hello?world', 'helloooworld')
- print(ret) # []
- # 7. '{}' 大括号也是重复匹配,但是匹配几次自己可以设置
- ret = re.findall('a{5}b', 'aaaabbaaa') # 要求a重复5次
- print(ret) # []
- ret = re.findall('a{5}b', 'aaaaabbaaa')
- print(ret) # ['aaaaab']
- ret = re.findall('a{1,3}b', 'ba***aab***aaab***aaaaaaaabaaa')
- print(ret) # ['aab', 'aaab', 'aaab']
Python 正则表达式
最新推荐文章于 2024-04-29 17:20:51 发布