《正则表达式必知必会》-- 个人认为最好的RE入门书籍
来源:互联网 发布:运动装 休闲装 知乎 编辑:程序博客网 时间:2024/06/05 02:22
《正则表达式必知必会》笔记
标签(空格分隔): 正则表达式 笔记 RE regular expression
说明:
1)《正则表达式必知必会》是本人见过的最好的一本讲解正则表达式的书籍,很适合初学者,书很薄,稍微有一点RE基础的人,1-2个小时可以翻一遍;
2) 本文是针对书的简略总结,方便自己查阅和对他人RE基础知识的检测。
3) 如果认为自己了解RE,可以直接下面内容进行检测或回顾,若内容看不懂,建议直接看原书了,真的很薄的,能最快入手!!!
元字符:在RE中有特殊含义的字符。
- 匹配文本,如
.
- 空白元字符,如
[\b] \f \n \r \t \v
等 –> 回车换行(\r\n
)
- 空白元字符,如
- 语法要求,如
[]
元字符大写和小写一般表示相反的匹配
- 匹配文本,如
在字符集合中,一般的,像
.
+
这样的元字符会被解释为普通字符,不需要被转义,但转义也可以。即[\w.]
等同于[\w\.]
。匹配的重复次数
*
,?
,+
–> 分别匹配字符(或字符集)零个一个或多个,零个或一个,一个或多个{1,8}
,{3,}
,{3}
过度匹配 (实际中注意使用”懒惰型”的)
贪婪型元字符 懒惰型元字符 *
*?
+
+?
{3,}
{3,}?
位置匹配
\b
匹配单词边界,匹配一个位置,即一个\w
和\W
之间的位置(字母、数字、下划线), 如\bhello\b
。注:些支持
\<
\>
这些分别匹配单词的开头和结尾^
$
字符串匹配分行匹配模式(multiline mode)–>将行分隔符当作一个字符串分隔符对待–>
(?m)
必须出现在模式最前面注:有很多RE不支持这个
子表达式
将子表达是当作一个独立元素使用
|
RE里面的或操作符,如( ){2,}
,(19|20)\d{2}
注:
 
标识HTML文档中使用的非换行型空格,即non-breaking space可嵌套使用
回溯引用(backreference)
- 子表达可以在模式的内部被引用,即模式的后半部分可以引用前半部分定义的字表达式
查找连续重复出现的单词
[ ]+(\w+)[ ]+\1
注:回溯引用匹配通常是从1开始,
\0
表示匹配整个正则表达式;有的RE使用$
或者支持名字捕获(named capture)常用在替换操作中,或将文本分为多个子表,进行排版优化
用来进行大小写转换的元字符,如
\E
\l
\L
\u
\U
\l \u
只能把下一个字符或子表达是转换为小大写,\L \U
则和\E
一起使用,作用于中间的字符
前后查找
- lookahead & lookbehind, 即匹配但不cnsume
?=
或?<=
必须放在子表达式开头,其中向前查找的长度可变,向后查找只能是固定的模式 <– 几乎所有的RE都遵守这一规则- 前后查找操作符,
(?=)
(?!)
(?<=)
(?<!)
,其中!
标识负向查找 negative,如负向前查找。 - 前后查找结合起来,如
(?<=<[tT]>).*(?=\</[tT]>)
条件嵌入
- 并非所有RE实现都支持条件处理
用
?
匹配一个字符或表达式,如果它存在则执行后面的回溯引用条件,语法
(?(backreference)true-regex)
,在backreference存在时,true-regex才被执行注:
?(1)
是可以的,这里不用反义,但?(\1)
往往也是可以的。前后查找,只有在一个向前或向后查找取得成功的情况下才才允许一个表达式被使用。将回溯引用条件中的编号–>一个完整的前后查找表达式
如:
\d{5}(?(?=-)\d{4})
–>?(?=-)
仅起到一个判断的作用,不消费
常用软件
grep
参数-E -G -P
分别表示支持扩展、基本和Perl正则表达式,-o -v -c
分别表示只想查看匹配结果,对匹配操作进行求非,只显示匹配次数- Perl
m/pattern/
s/pattern/pattern/
qr/pattern
split()
- 限定符放在模式的后面,
\i
表示全局搜索,\g
表示全局搜 - 回溯引用,$` 返回匹配字符串前面所有的东西,$` 返回最后一个被匹配的子表达式,$& 返回整个被匹配字符串:
- 《正则表达式必知必会》-- 个人认为最好的RE入门书籍
- 个人认为最好的工具之一
- WEB打印,个人认为最好的。
- 个人认为最好的SQL注入教程
- 个人认为最好的SQL注入教程
- FSCapture[个人认为最好的截图工具]
- 个人认为:vue最好的源码解读
- 学习正则表达式最好的入门网站
- python的正则表达式 re
- python的re正则表达式
- python的正则表达式 re
- python的正则表达式 re
- 正则表达式的方法--re
- WS07-Re(正则表达式)库入门
- 两个个人认为最好的GTD在线网站
- 个人认为讲解java异常最好的文章
- Python 正则表达式 RE模块的使用方法
- Python的re模块学习---正则表达式
- Mac OS X 如何查看隐藏文件
- java修饰符总结
- 利用HttpClient和HtmlParser构造简单爬虫
- modsecurity系列三:规则2-Operators
- Linux shell脚本中父子进程与变量的分析
- 《正则表达式必知必会》-- 个人认为最好的RE入门书籍
- mysql笔记
- java的final关键字——修饰参数和修饰类
- Java直接(堆外)内存使用详解
- 解决/lib64/libc.so.6: version `GLIBC_2.14' not found
- 一招解决全局键盘遮挡输入框问题
- JavaScript DOM加载
- 使用python爬虫时,遇到多页,需要翻页,下一页时怎么处理
- 编译原理:用bison实现输入二进制数,输出十进制数