#正则表达式: 只和字符串打交道
# 第一:从一大段文字中获取符合条件的内容,爬虫
# 第二:检测某个字符串是否完全符合规则,表单的验证
# 字符串
# 匹配所有的数字[0-9]
# 匹配所有的小写字母[a-z]
# 匹配所有的大写字母[A-Z]
# 匹配所有的字母数字[0-9a-zA-Z]
# [A-z] 匹配所有字母 只能按ascci码的从小到大
#元字符
# \d 匹配所有数字 一个个匹配
# \w 匹配所有字母数字和下划线
# \s 匹配所有的空白符,包含(\n \t 空格)
# \D 匹配所有非数字
# \W 匹配所有非字母数字和下划线
# \S 匹配所有非空白符
# . 匹配除了换行符以外的任意字符 (\n)
# ^... 匹配以...开头的字符串
# ...$ 匹配以...结尾的字符串
# ^...$ 如果两个一起使用必须和字符串内容 一模一样
# [^123] 非字符组,只要不是123,都能匹配上
# | 或 俩个字符串很相似,需要把长的放前面 比如: wind123|wind
# | 经常和分组()一起使用 比如:^(wind123|wind)$ 以...或,,,开头结尾
# 量词
# {n} 表示n个为一组 比如:[0-9]{3} 每3个匹配算一个
# {n,} 表示至少n个为一组,尽可能多的匹配
# {m,n} 表示m,n个为一组,尽可能多的匹配
# + 1-无穷的
# * 0-无穷大
# ? 表示匹配0次或1次
# 贪婪匹配:尽可能多的匹配
# 惰性匹配:尽可能少的匹配,在量词后加?
# 匹配任意的正整数 [0-9]\d*
# 匹配任意小数 \d+\.\d+ 或 \d+\.\d*
# 匹配任意的整数或小数 \d+(\.\d+)? 或 \d+\.\d+|\d+
# 转义符 \取消转义 \d+\.\d+ 取消.的含义,让.变成一个普通的.