正则表达式学习-初

前两天转了一篇正则表达式实例的文章,内容不是太复杂,不过在自己再想继续深入时,
 却发现它也不是我想的那么简单,决心努力好好学习学习,这不,花费上午的时间学习
了正则表达式,并写下了这篇初级的入门总结,给和我一个水平的朋友参考。
      下一步还会有一个深入,等我学好了,再继续发上来,呵呵。


正则表达式概述
                                                                                                                                              
    在编写处理字符串的程序或网页时,常会有查找符合某些复杂规则的字符串的需要。
而正则表达式就是用于描述这些规则的工具,正则直接量也被定义为包含在一对斜线(/)
间的字符,它是记录文本规则的一类代码。
                                                                                                                                               
    它主要是用于文本匹配,所以我们不得不提到字符串的搜索/查找,因为正则表达式
 就是在给定的字符串中,寻找与之匹配的部分,匹配在这里有三层意思:一种是一个字符
串匹配一个表达式;一种是在字符串李匹配正则表达式,最后一种是字符串中满足给定的
 正则表达式的一部分。
                                                                                                                                              
正则表达式
                                                                                                                                               
 特殊字符
 在正则表达式中,下面的这些符号:
 ^ $ . * ?  | / [] {}
都具有特殊的含义,在写正则表达式时尤其要注意,若想在表达式中直接使用它们,则必
 须在其前面加上/,以表示转义,如//, /:
首先在这里说明它们各自的作用:
 ^ 是匹配字符串的开始,如[^/x00-/xff] (匹配双字节字符,包括汉字在内)
                                                                                                                                               
$ 是匹配字符串的结尾,如
 ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ (匹配合法的帐号:子母开头,5-15位,允许子母数字下划线)
                                                                                                                                              
. 可以匹配除换行符以外的任意字符
 * 重复0次或者多次
 ? 重复0次或一次
+ 重复1次或多次
                                                                                                                                               
| 起或的功能,即匹配两个表达式中的任意一个,如/d{15}|/d{18} (匹配15或18位的身份证)
/ 转义字符,用于转义上面的特殊字符
 [] 匹配[]中的任意字符,如[aeiou] (匹配任何一个英文<F12>元音子母),还可以定义否定的
 字符类,用于匹配不包含在[]内的所有字符,如[^0-9]匹配的是除数字之外的所有字符。
 {} 有三种用法:{n} 重复n次;{n,} 重复n次或更多次;{n,m} 重复n到m次,如
13/d{9} 中国的手机号
                                                                                                                                              
 元字符
                                                                                                                                              
 说明:几乎所有的语言都有正则表达式,但其规则却不一定都相同,在我看的资料中,关于
 元字符的解释就不尽相同,有的解释是: /w的匹配为任何ASCII单字字符,等价于[a-zA-Z0-9],
 而在另外则为匹配字符数字或下划线或汉字,因此大家在编写正则表达式时一定要作好测试,
 看到底是如何匹配的,以免造成错误.
 
/w 匹配字符或数字或下划线或汉字,等价于 [a-zA-Z0-9/u4e00-/u9fa5]
 /s 匹配任意的空白符
 /d 匹配任意数字,等价于 [0-9]
/b 匹配单词的开始或结束,即一个词语的边界,位于/w和/W之间的位置� ^及$和/b有些类似
 ,都是匹配的位置,比如要求输入的QQ号必须为5到12位,则可以这样写: ^/d{5,12}$
                                                                                                                                              
 反义
                                                                                                                                              
 /W 匹配任意不是子母,数字,下划线或汉字的字符
 /S 匹配任意不是空白符的字符
 /D 匹配任意非数字的字符
 /B 匹配不是单词开头或结束的位置,即一个词语的边界,位于/w和/W之间的位置
                                                                                                                                               
例如: /S+ 匹配不包含空白符的字符串 <a[^>]+> 匹配用尖括号括起来的以a开头的字符串

替换

 关于替换我们在前面的例子中其实也有涉及到了,一个简单最简单的: [0-9]|[a-zA-z] 匹配任意的
 数字或者字母.

基础知识就到此为止,下次主要内容说明:
 分组
                                                                                  
 后向引用
                                                                                 
 零宽断言
                                                                                 
负向零宽断言
                                                                                  
注释
                                                                                 
 贪婪与懒惰
                                                                                  
处理选项
                                                                                  
平衡组/递归匹配
 
 可能都会有,也可能有一部分,看我的学习能力了,呵呵。

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值