从开始学java语言就接触了正则表达式,但是一直没有系统学习过,这次能顺利进入中软公司,多亏了正则表达式。因为周二机试的题目就是写一个关于邮箱验证的正则表达式。让我看到了公司对正则表达式的重视。现在有必要系统学习一下:我现在学习正则表达式主要看的书籍是:正则表达式经典实例和精通正则表达式,和正则表达式30分钟入门这三本书。如果想要电子书的朋友可以留下邮箱。
今天主要首先认识下正则表达式。
一、定义
用正则表达式30分钟的话说:在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。
用本人的一句话就是: 符合某种特定规则的代码。
由于不同的程序语言对正则表达式的调用不一样,所以形成不同的流派: 目前有六大流派, Ruby java C# Python, Javascript 和 PHP,但基本原则都是一样的,作为程序开发人员,个人认为没有必要吧关注点放在流派上,而应是在正则表示式本身的意义和作用上
二、基本语法
(1) \b是正则表达式规定的一个特殊代码,代表着单词的开头或结尾,也就是单词的分界处, 如下看,在上面正则式输入框为: \bname\b 就是说把句子中name给匹配出来,下面文本框中就看到name被标记为黄色,表示匹配
说明一下: 以上这款软件叫regexbuddy,是专门用来测试正则表达式的。
(2) \s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
\w匹配字母或数字或下划线或汉字等。
上面正则表达式意思是匹配空格+字母、数字和下划线的,但是文字的测试没用通过。故大家以后要注意。刚才在网上查了一遍,好多网友都认为\w不能匹配汉字。具体见如下论坛:
http://bbs.csdn.net/topics/230086608
如果一定要匹配汉字,利用如下规则
(3)数量匹配
*匹配重复任意次(可能是0次),
+则匹配重复1次或更多次。
{}中加数字 表示出现几次
现在看几个例子:
\balbert\w*\b匹配以字母a开头的单词——先是某个单词开始处(\b),然后是单词albert, 然后是任意数量的字母或数字(\w*),最后是
单词结束处(\b)。
\blove+\b表示出现一次e或者几个e
\b\w{6}\b 匹配刚好6个字符的单词
好了,各位亲们,今天就学习到这里,早晨7点还得起床上班了,晚安了