正则表达式学习心得

版本:v2.1

Crifan Li

摘要

本文主要介绍了正则表达式的基本语法,以及Python,C#,PHP,Notepad++,Javascript,Perl, Java, EditPlus,UltraEdit,ActionScript,Object-C等语言和工具正则使用心得,以及总结了各个语言间正则表达式的区别。

[提示] 本文提供多种格式供:
在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP
下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP

HTML版本的在线地址为:

http://www.crifan.com/files/doc/docbook/regular_expression/release/html/regular_expression.html

有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:

http://www.crifan.com/bbs/categories/regular_expression/

2013-09-05

修订历史
修订 2.1 2013-09-05 crl
  1. 完成此文逻辑框架
  2. 添加了Javascript中的正则表达式
  3. 添加了Notepad++t中的正则表达式
  4. 添加了Python中的正则表达式的少部分内容
  5. 将Python的re的语法和使用心得从language_summary中移过来了
  6. 添加了C#的Regex
  7. 添加了PHP的PCRE
  8. 已将之前Python和C#之间的正则比较整理过来了
  9. 已将C#的Regex整理过来了
  10. 添加关于Perl, Java, EditPlus,UltraEdit,ActionScript,Object-C的正则
  11. 将Python的re整理出去成为独立的教程

目录

1. 正则表达式的通用知识
1.1. 正则表达式简介
1.1.1. 什么是正则表达式
1.1.2. 正则表达式的功能和用途
1.1.2.1. 正则表达式的用途举例
1.1.3. 如何使用正则表达式
1.1.3.1. 在某种语言中使用正则表达式
1.1.3.2. 使用专门的正则表达式方面的工具
1.2. 正则表达式的通用语法
1.2.1. 关于贪婪原则和最少原则
1.2.2. 反斜杠
1.2.3. 上尖括号^
1.2.4. 中括号[]内的+,*,(,)
2. Javascript中的正则表达式的学习心得
2.1. javascript中的正则表达式的简介
2.2. javascript正则表达式的语法
2.3. javascript中正则表达式用法举例
2.4. javascript正则表达式的使用心得或注意事项
3. Notepad++中的正则表达式的学习心得
3.1. Notepad++中的正则表达式的简介
3.2. Notepad++正则表达式的语法
3.3. Notepad++中正则表达式用法举例
4. Python中的正则表达式re模块的学习心得
5. C#中的正则表达式的学习心得
5.1. C#中的正则表达式的简介
5.2. C#正则表达式的语法
5.3. C#中的正则表达式的特点
5.4. C#正则表达式的使用心得或注意事项
5.4.1. 正则表达式字符串的写法
5.4.2. 正则表达式中包含双引号,是用两个双引号去表示
5.4.3. C#中的named group和后向引用
5.4.4. 关于字符点,匹配任意字符,但是不匹配换行(\n)的事情
5.4.4.1. 关于默认情况下就是非单行模式,所以默认情况,点是不匹配换行字符\n的
5.4.4.2. 匹配换行\n之外的任意字符,那么也包括了回车\r字符
5.4.5. C#中如何获得带名字name的捕获capture的组group
5.4.6. C#中,对于Regex中带嵌套的括号,那么group是的index如何计算,以及Regex中包含了带name的group,group又是如何计算的。
5.4.6.1. C#中,如果Regex中包括了子括号,即括号嵌套括号的时候,group的index是如何计算的,以及如果Regex中包括了带name的group,group的index是如何计算的
6. PHP中的正则表达式的学习心得
6.1. PHP中的正则表达式的简介
6.2. PHP正则表达式的语法
6.3. PHP中正则表达式用法举例
6.4. PHP正则表达式的使用心得或注意事项
7. Perl中的正则表达式的学习心得
7.1. Perl中的正则表达式的简介
7.2. Perl正则表达式的语法
7.3. Perl正则表达式用法举例
8. Java中的正则表达式的学习心得
8.1. Java中的正则表达式的简介
8.2. Java正则表达式的语法
8.3. Java中正则表达式用法举例
8.4. Java正则表达式的使用心得或注意事项
8.4.1. 正则中的斜杠,要写成2个斜杠
8.4.2. replaceAll中的斜杠,单个斜杠要写陈四个斜杠
8.4.3. java 7之后才支持命名的组(named group)
9. Editplus中的正则表达式的学习心得
9.1. EditPlus中的正则表达式的简介
9.2. EditPlus正则表达式的语法
9.3. EditPlus中正则表达式用法举例
10. UltraEdit中的正则表达式的学习心得
10.1. UltraEdit中的正则表达式的简介
10.2. UltraEdit的正则表达式的语法
10.3. UltraEdit中正则表达式用法举例
10.4. UltraEdit正则表达式的使用心得或注意事项
10.4.1. 是"替换"而不是"在文件中替换"
10.4.2. Unix版本的正则中的OR操作不支持超过2个的
11. ActionScript中的正则表达式的学习心得
11.1. ActionScript中的正则表达式的简介
11.2. actionscript正则表达式的语法
11.3. ActionScript中正则表达式用法举例
12. Object-C中的正则表达式的学习心得
12.1. Object-C中的正则表达式的简介
12.2. Objective-C正则表达式的语法
13. 不用语言之间的正则表达式的比较
13.1. 一些关于正则表达式中的比较
参考书目

表格清单

1.1. 正则表达式中通用字符匹配规则
1.2. 正则表达式中通用的限定符
1.3. 正则表达式中通用的限定符的不同语言中的写法
1.4. 正则表达式中已定义的转义字符序列
13.1. 不同语言间正则表达式写法的比较

范例清单

2.1. Javascript中match的用法举例
3.1. Notepad++中用正则表达式实现字符串替换
5.1. 默认的点'.'不匹配换行\n
6.1. 从html中提取skydrive图片的url
7.1. Perl正则去除html的tag
8.1. 匹配所有的某种格式的字符串
8.2. 带命名的组去替换单个字符串
9.1. 查找某个格式的字符串
10.1. 查找并更改height和width的值