何所谓正则表达式?个人理解就是文本搜索的一种规则。那么正则表达式就需要解决下面的问题
- 规则如何表示
- 规则如何使用
规则如何表示
序号 | 需求 | 表示 |
---|---|---|
1 | 任意一个字符 | (.) |
2 | 任意一个字符在备选范围内(字符集) | ([a-zA-Z0-9]),[^abc] |
3 | 匹配开头 | '^' (注意区别反转字符集2,没有放到中括号里面) |
4 | 匹配结尾 | '$' |
如果需要匹配多个连续的字符,怎么办?那么就看连续的定义了,a) 如果只需要匹配('python','pear')两个单词,管道运算符就这么来了
序号 | 需求 | 表示 |
---|---|---|
5 | 匹配不等长单词 | 管道运算符<code>(|)</code> ,'p(ython(|)ear)' |
多个字符的另外一种情况就是重复模式
序号 | 需求 | 表示 |
---|---|---|
6 | 0个或者多个t | '(t)*' |
7 | 只是一个t | '(t)+' |
8 | 指定数量m,n | '(t){m,n}' |
例子:匹配网址'www.jianshu.com', 'wwww.jianshou.com'等网址可以为
r'^(w){3,4}\.jiansh(u|ou)(.)+com$'
主要是希望在你使用的时候能够查询到这些。注意转义字符\\
的使用
规则如何使用?
规则已然通过字符串的方式构建了,这种字符串中的特定符号代表了一系列已知或者未知的东东。那么如何使用这个字符串呢?python提供了re模块干这个事情,那么在深入之前,举个例子。老板让你找一个黑头发或者黄头发,年龄在16-20之间,罩杯在c和d之间的女模特,你会问什么问题呢?
- 去哪儿找(大街上,模特公司,还是xx数据库)
- 怎么找(方法很多哈)
- 到底能不能找到(沙漠里估计就难找到这样的模特呀)
- 找多少(一个还是都找到)
- 找到了做什么(走秀表演,还是拍广告)
- 怎么才能快速的找到(问问前辈,做过了的)
这么多的问题,re模块都给你解决了,对应模式的搜索
- 去哪儿找(提供的字符串)
- 怎么找(使用re模块)
- 到底能不能找到(search下看看)
- 找多少(findall 全给你,你自己决定)
- 找到了做什么(分割字符串,替换)
- 怎么才能快速的找到(compile一下)
网友评论