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

从今天开始试着把自己看过的书里的东西有条理的记录在这里。希望可以坚持。

 

正则表达式是一种匹配文本中的字符序列的字符模式。提到正则表达式应该立刻想到它的应用范围是文本,而正则表达式实际上利用的是文本中字符的模式匹配。

 

使用正则表达式可以做什么?

(1)查找重复单词。

(2)检查web表单的输入是否符合服务器端数据库存储所允许的格式。正则是确保在客户端发现不适当数据的理想选择。

(3)转换日期格式。美式日期12/25/2009,英式日期25/12/2009,其他2009-12-25

(4)发现错误拼写。检查替换错误的拼写,如行首字母大小写。

(5)为URL添加链接。查找文本中包含的URL,如转换成<a href="the URL">theURL</a>

 

正则表达式没有统一的标准,不同实现工具之间的差异非常多。

元字符:指在正则模式中具有特殊含义的字符或字符序列。

同一元字符在同一语言的不同环境下可能表示不同的涵义。^可以是行首标识,如^and,也可能是取反标识,如[^and]([]包围的叫做字符类)

 

数据决定了模式的匹配行为。如URL以HTTP开头或以WWW开头,对应的想匹配文本中的URL,需要分开处理。

 

创建合适的正则表达式需要对自己的需求有过认真的分析,并且在对数据源进行研究的基础上充分理解了数据内容的特点。

 

简单的正字表达式

包括直接量字符和字符序列。

一个元字符通常会匹配一类字符,如/d匹配数字的字符类。

匹配单个可选的字符。如colou?r,?标示它前面的一个字符时可选的,可以出现0次或1次,因而color和colour都将匹配。

匹配多个可选的字符。如colou?r'?s?'?,希望匹配color或者colour的单复数形式以及所有格形式,因而诸如color's可以匹配;但是,如果出现color's'这样的字符序列也会匹配,这显然是错误的。实现初衷的做法是,只有在第一个撇号'不存在时(0次匹配)才可以匹配第二个撇号。这个工作留待后续研究。

其它的限定符:

* : 相关的模式(*前面的“块”)出现0次或多次。 如[0-9]*表示匹配0个数字或者多个数字。

+ : 匹配一次或多次前面的块。

{} : 有几种语法---{n}精确指定匹配次数为n,如ABC[0-9]{3},ABC后跟3个数字

                           {n,m}匹配最少n次最多m次

                           {0,m}匹配0次到指定次数

                           {n,}匹配n到无限次

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值