正则表达式学习笔记(1)

       正则表达式(regular expression,简称regex)是一些用来匹配和处理文本的字符串。正则表达式语言并不是一种完备的语言,他是内置于其他语或软件产品里的“迷你”语言。正则表达式的使用无非两种情况:一种是查找特定的信息(搜索),另一种是查找并编辑特定的信息(替换)。学习正则表达式对我们学习爬虫很有帮助。本文是学习美国知名技术作家Ben Forta编写的《Sam Teach Yourself Regular Expression in 10 Minutes》的中文翻译版《正则表达式必知必会》的学习笔记。书中提供的正则表达式测试工具的链接如下:http://www.forta.com/books/0672325667/.

.  (点)字符可以匹配任何单个的字符(除了换行符)
[]  用来定义字符集合 字符集合中可以使用连字符-来简化字符区间的定义,如[0123456789abcd]可以简化为[0-9a-d]   连字符按照ASCII码顺序来计算区间
^  取非字符 ^的效果作用于给定的字符集合里所有字符,而不是紧跟其后的一个字母如[^0-9a-z]
\   转义字符 任何一个元字符都可以通过在其前加一个\将其转义 配对的元字符不用做元字符时必须转义如[] 有时候喜欢把转义字符加上字符集合 [\n]增加可读性

空白元字符
\n    换行符
\r     回车符
\t     制表符(Tab)
\v    垂直制表符
\f     换页符
[\b]  回退键 Backspace

\r\n  匹配一个 回车+换行  组合 (windows系统下)


匹配数字
\d   任何一个数字字符       等价于[0-9]
\D   任何一个非数字字符   等价于[^0-9]   

匹配字母和数字或下划线
\w  任何一个字母数字字符或下划线字符        等价于[a-zA-Z0-9_]
\W 任何一个非字母数字字符或非下划线字符  等价于[^a-zA-Z0-9_]


匹配空白字符
\s   任何一个空白字符      等价于[\f\n\r\t\v]  ([\b] 除外)
\S  任何一个非空白字符   等价于[^\f\n\r\t\v]

匹配一个或多个字符
+   匹配至少一个或者多个字符   给字符或者字符集合加上+的后缀(放在字符集合的后面),表示匹配同一个字符的多次重复 如\w+[09]+
注:[0-9+]表示数字0-9和+的构成的字符集合(同样还有.)

匹配零个或多个字符
*    匹配一个字符连续出现零次或多次的情况 用法同+ 区别在于匹配的字符可有可无 可以理解为在*前面的字符是可选的

匹配零个或者有一个字符
匹配一个字符的零次或者一次出现   如 https? 这个s可以出现0次也就是匹配到http 或者可以出现一次匹配到https

匹配重复次数
如果想给匹配的重复次数设定一个精确值,在{}加上确定的数字   如\d{3}表示模式里前一个字符或字符集合必须出现3次才算是一个匹配

设定区间
{2,4}至少重复两次,最多重复四次
{3,}至少重复3次

贪婪型懒惰型
*和+都是贪婪型的元字符,他们在匹配时往往是多多益善,
懒惰型元字符是在其后加上?  变为 *?  +?  

猜你喜欢

转载自blog.csdn.net/Bei_xifen/article/details/82498849