正则表达式入门经典(学习笔记一)——正则表达式概述

来源:互联网 发布: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.net

2.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不同的数据源,即使用环境不同,正则表达式达到的效果不同