正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,来筛选出符合这个规则的内容。
可以简单理解为:一个强大的搜索工具中,正则表达式就是你要搜索内容的条件表达式。
1. re.findall()函数
作用:遍历整个字符串,可以获取其中所有匹配的字符串,返回一个列表。
一般用法:
re.findall(r'正则表达式','要匹配的文本')
2. 从小练习接触正则
- 从字符串中匹配单词to:
import re
text = "0537-146987425,0537-299656897,The moment you think about giving up,think of the reason why you held on so long. Total umbrella for someone else if he, you’re just not for him in the rain.Never put your happiness in someone else’s hands.Sometimes you have to give up on someone in order to respect yourself. aaaa bbbbcc d dddddd"
print(re.findall(r'to',text))
- 输出:
['to', 'to']
- 匹配在text中以g开头的所有单词:
print(re.findall(r'\bg\w*?\b',text))
- 输出:
['giving', 'give']
- 查找字母长度为4的单词:
print(re.findall(r'\b\w{4}\b',text))
- 输出:
['0537', '0537', 'held', 'long', 'else', 'just', 'rain', 'your', 'else', 'have', 'give', 'aaaa']
- 查找出xxxx-xxxxxxxxx格式的数据:
print(re.findall(r'\d{4}-\d{8}',text))
- 输出:
['0537-14698742', '0537-29965689']
3. 正则表达式元字符
元字符 | 功能说明 |
---|---|
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
. | 匹配除换行符以外的任意字符 |
\d | 匹配数字 |
\b | 匹配单词头或单词尾 |
\w | 匹配任何字母、数字以及下划线 |
\s | 匹配任何空白字符,包括空格、制表符、换页符 |
\B | 与\b相反,匹配非单词边界 |
\W | 与\w相反 |
\S | 与\s相反 |
{m,n} | {}前的字符或子模式重复至少m次,至多n次 |