1.解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储。
2.指定的标签的定位
3.标签或者标签对应的属性中存储的数据值进行提取(解析)
正则表达式语句
import re
re.compile(“正则表达式”).findall(“原字符串”)
匹配符
普通字符 正常匹配其中的字符。
\n 匹配换行符。
\t 匹配制表符。
\w 匹配字母、数字、下划线。
\W 匹配除了字母、数字、下划线的字符串。字母大写相当于非(个人总结)
\d 匹配十进制数字
\D 匹配除了十进制数字的字符串
\s 匹配空白字符
\S 匹配非空白字符
[asd213] 匹配中括号中的任意一个字符
[^asd213] 匹配中除了括号中的任意一个字符
特殊字符
想单纯的使用以下字符,需要在前面加一个\,如$
. 匹配除换行符 \n 之外的任何单字符。
^ 匹配输入字符串的开始位置。
$ 匹配输入字符串的结尾位置。
* 前一个字符出现零次或多次。
+ 前一个字符出现一次或多次。
? 前一个字符出现零次或一次。
{
n} 前一个字符恰好出现n次
{
n,} 前一个字符至少出现n次
{
n,m} 前一个字符至少n次,至多m次
| 指明两项之间的一个选择。
() 标记一个子表达式的开始和结束位置。
贪婪模式与懒惰模式
贪婪模式:就是尽可能多的匹配,默认贪婪模式
懒惰模式:就是尽可能少的匹配,也叫精准模式
当出现以下组合时,才代表是懒惰模式:
*? 懒惰模式//?不代表0或1了
+? 懒惰模式//?不代表0或1了
模式修正符
re.compile(“正则表达式”).findall(“原字符串”) //原匹配语句
re.S //使.也可以匹配换行,单行匹配。
re.I //匹配时候忽略大小写
re.M //多行匹配
实例1
源字符串:"XiaoZhe"
正则表达式:"xiao"
匹配语句:re.compile("xiao",re.I).findall("XiaoZhe")
匹配后:"Xiao"