正则表达式解析
https://www.runoob.com/regexp/regexp-intro.html
C# 正则表达式
https://www.runoob.com/csharp/csharp-regular-expressions.html
正则表达式测试 https://tool.oschina.net/regex
元字符:具有固定含义的特殊符号 常用元字符:
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串的开始(多用于内容验证,爬虫使用较少)
$ 匹配字符串的结尾(多用于内容验证,爬虫使用较少)
\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符α或字符b
() 匹配括号内的表达式,也表示一个组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
量词:控制前面的元字符出现次数
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
贪婪匹配和惰性匹配
.* //贪婪匹配
.*? //惰性匹配
import re
# findall:匹配字符串中所有的符合正则的内容
lst = re.findall(r"\d+"","我的电话号是:10086,我女朋友的电话是:10010"")print(lst)
# finditer:匹配字符串中所有的内容[返回的是迭代器]
it = re.finditer(r"\d+","我的电话号是:10086,我女朋友的电话是:10010"")
for i in it:
print(i.group())