常用的正则表达式匹配字符

  最近准备学习下爬虫知识,复习了下正则表达式的知识,在这里记录一下,方便以后忘记的时候可以回来回顾一下。

    

常用的正则表达式:

1) ^ $ *  ?  + [2]  [2,5]  [2,]

2)   []  [^]  [a-z]

3)   \s \S  \w \w

4)  [\u4E00-\u9FA5]  ()  \d


正则表达式:

1) ^ 以字符串开头
$ 以字符串结尾
* 匹配任意字符
? 设置不贪婪匹配, 例: + 匹配到一个时,就取消匹配,加上?则匹配多个,注意是从字符串的右边开始匹配
+ 匹配字符串至少一个以上
{2} 匹配两个
{2,} 匹配两个以上
{2,5} 匹配两个或者五个
| 表示'或'的关系, | 两边的表达式任意一个匹配即可
2)
[] 匹配中括号中的任意字符
[^] 匹配中括号中的字符以外的字符
[a-z] 匹配中括号中的区间
. 匹配任意字符
3)
\s 匹配空格
\S 匹配非空格
\w 匹配数字,字母,下划线
\W 匹配非数字,字母,下划线
4)
[\u4E00-\u9FA5] 匹配汉字
() 使用括号提取匹配到的字符串
\d 匹配数字

示例程序:

import re

line = 'xxx出生于2001年6月'
line = 'xxx出生于2001/6/2'
line = 'xxx出生于2001-6-2'
line = 'xxx出生于2001-06-02'
line = 'xxx出生于2001-06'

regex = ".*出生于(\d{4}[年/-]\d{1,2}([月/-]\d{1,2}|[月/-]$|$))"
ret = re.match(regex, line)
if ret:
    print(ret.group(1))

  

猜你喜欢

转载自www.cnblogs.com/forwrader/p/9571538.html