正则表达式 正则规则(一)
re模块: 正则表达式的模块
1: 正则表达式 本身是另外一种语言规范. 通过一个规则来从一段字符串中 找到符合规则的内容, 或者判断,某段字符串是否符合规则.
1, 注册页/ 网页上 要求输入信息, 来判断输入的信息 是否合法.
2, 爬虫.
2, 正则规则:
1, 字符组: [...] 约束字符中某一个字符位置上的值是什么, 只要出现在字符组中的内容就都算匹配
2, 顺序 是按照 ASCII码的顺序来的.
3, 匹配多个数字: [0-9]; 匹配多个字母[A-Za-z]; 匹配十六进制[0-9A-Fa-f]
4, 匹配单词的方法: 元字符
. 点能匹配任意字符, 除了换行符.
\d 匹配所有数字.
\s 匹配所有空白的符
\w 匹配所有的数字,字母, 下划线.
\n 匹配所有的换行符.
\t 匹配所有的制表符.
\b 匹配一个单词的两端.
^ 匹配字符串的开始. 且永远放在规则的开始
$ 匹配字符串的结尾. 且永远放在规则的结尾.
\W 匹配非字母或数字或下划线
\S 匹配非 所有的空白符
\D 匹配非数字.
...|.... 匹配左边的或则匹配右边的, 如果左右两边有重复的 需要把长的放在左边.
[^...] 匹配非字符组.
[...] 字符组
() 匹配括号内的表达式,也表示一个组
5. 匹配多次的 量词.
? 重复0次或者一次.
+ 重复 1次,或者更多次
* 重复0次 或者更多次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
6. 非贪婪匹配: (.*?)x 遇到x就停下来. 取前面的任意长度的字符,直到x停下来. 尽量少的匹配, 需要在量词的后面加一个?
2, python如何操作正则表达式.
r'' 表示取消字符串里面的转义符的转义作用.
re 模块的两个模块.
re.findall(正则表达式, 复杂的字符串) 一次性把 匹配到的结果 放到列表里面
re.search(正则表达式, 复杂的字符串) 一次只匹配第一个符合条件表达式的结果, 以对象的形式返回, 通过对象.group() 取实际的值, 如果没有匹配到结果的话,会返回None, 若是再用.group() 取值会报错.
详情内容可见http://www.cnblogs.com/Eva-J/articles/7228075.html#_label10