正则表达式入门经典(学习笔记一)——正则表达式概述
来源:互联网 发布:pc版直播软件 编辑:程序博客网 时间:2024/06/07 02:17
1.什么是正则表达式?
正则表达式(Regular Expression)是一种匹配文本中的字符序列的字符模式。
2.正则表达式用在哪些地方?
2.1查找重复的单词 \<([A-Za-z]) +\1\>
Paris in the the spring.
The theoretical viewpoint is of little value here.
I view the theoretical viewpoint as being of little value here.
I think that that is often overdone.
This sentence contains contains a doubled word ortwo two.
Fear fear is a fearful thing.
Writing successful programs requires that the the programmer fully understands the problem to be solved.
2.2表单验证
e.g. 电子邮件地址 ^\w*(?<=w)\.?\w+@(?=[\w\.]+\w)\w+\.\w{3,4]$
@Home
@ttitude
John@somewhere.invalid
Peter@example.org
Peter@example.info
John@Smith@example.com
20 @ $10 each
@@@ This is a comment @@@
Jane@example.net
Peter.Smith@example.net2.3转换日期格式
2.4拼写检查
e.g. 检查Training前面的单词: \b\w+\s+Training
筛选出可能拼错的Training: star\s+T\w+g
2.5为URL添加链接
3. 为什么正则表达式看起来令人生畏?
3.1简介而神秘的语法
含有^ *\ ( [ {等,看起来像是乱码
3.2空格会导致含义改变
^S.*与^ S.* ^(C|D|R|S).* 与 ^(C|D |R|S).*
3.3没有统一的语法标准
3.4各种实现之间有差别
Microsoft Word,OpenOffice.ogr,findstr,PowerGPER,Microsoft Excel通配符,MySQL,Access,JScript和JavaScript,VBScript,C#,PHP,W3C XML Schema,java,Perl
3.5不同环境下的字符含义不同
^在字符类的外部表示一行的开始位置^and匹配字符序列and位于一行开头,在字符类内部则表示取反
.[^and].*匹配一个字符后不跟a、n、d字符,并且后可跟零个或多个任意字符
3.6正则表达式可以区分大小写
区分大小写两层意思:一方面指按照是否区分大小写的原则进行匹配;另一方面指元字符区分大小写\d与\D。
3.7同一编辑器或语言的不同版本也会提供不同的正则表达式功能,支持性技术不断发展
3.8一个问题对应多个正则表达式解决方案
3.9不同的数据源,即使用环境不同,正则表达式达到的效果不同
- 正则表达式入门经典(学习笔记一)——正则表达式概述
- 正则表达式入门经典|学习笔记(一)
- 正则表达式入门经典(学习笔记二)——使用正则表达式的分析方法
- 正则表达式入门经典(学习笔记三)——正则表达式组成要素
- 正则表达式入门经典(学习笔记五)——正则表达式中的圆括号
- 正则表达式入门经典(学习笔记七)——正则表达式的灵敏度和特殊性
- 正则表达式入门经典(学习笔记四)——字符类
- 正则表达式入门经典(学习笔记八)——几个例子及解释汇总
- python库学习笔记——re库:正则表达式入门(一)
- 正则表达式入门学习笔记
- 正则表达式入门经典
- 正则表达式学习笔记(一)
- 正则表达式学习笔记 一
- 正则表达式学习笔记一
- 正则表达式学习笔记一
- 正则表达式 学习笔记(一)
- 正则表达式学习笔记(一)
- 正则表达式学习笔记(一)
- 用syslinux做一个安装centos-6用的u盘
- 求c++类的大小
- 《STL源码剖析》-- type_traits.h
- HDOJ 3970 最短路径问题[Dijsktra算法的应用]
- Asp.Net中几种常见的方法批量显示数据
- 正则表达式入门经典(学习笔记一)——正则表达式概述
- AutoResetEvent WaitOne和Set使用实例
- matlab eig函数
- Hilbert曲线-学习
- C++ '__FILE__' and '__LINE__
- ARM平台上蓝牙协议栈Bluez的移植使用和配置
- lfs下安装selinux需要重新安装的程序
- hover在IE8失效的问题
- JdbcUtil