java+正则表达式

java+正则表达式

ID:45068417

大小:966.50 KB

页数:45页

时间:2019-11-09

java+正则表达式_第1页
java+正则表达式_第2页
java+正则表达式_第3页
java+正则表达式_第4页
java+正则表达式_第5页
资源描述:

《java+正则表达式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java正则表达式宋仲春早期起源正则表达式的“祖先”可以一直上溯至对人类神经系统如何工作的早期研究。WarrenMcCulloch和WalterPitts这两位神经生理学家研究出一种数学方式来描述这些神经网络。1956年,一位叫StephenKleene的美国数学家在McCulloch和Pitts早期工作的基础上,发表了一篇标题为“神经网事件的表示法”的论文,引入了正则表达式的概念。正则表达式就是用来描述他称为“正则集的代数”的表达式,因此采用“正则表达式”这个术语。随后,发现可以将这一工作应用于使用KenThompson的计算搜索算法的一些早期研究,KenThompson是Un

2、ix的主要发明人。正则表达式的第一个实用应用程序就是Unix中的qed编辑器。如他们所说,剩下的就是众所周知的历史了。从那时起直至现在正则表达式都是基于文本的编辑器和搜索工具中的一个重要部分。重要声明许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能Java正则表达式不是javascript正则表达式Java正则表达式优点使用java正则表达式与传统编程相比优点:在判断EMAIL等传统编程方法可能需要一二十行代码,使用正则表达式只需几行代码而已提高编程效率弊端:需要学

3、习java正则表达式的用法。基础知识部份开始java正则表达式的基础知识正则表达式基础知识我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”。如果搜索对大小写不敏感,单词“catalog”、“Catherine”、“sophisticated”都可以匹配。也就是说:1.1句点符号假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。你可以使用一个通配符——句点符号“.”。这样,完整的表达式就是“t.n”,它匹配“tan”、“ten”、“tin”和“ton”,还匹配“t#n”、“tpn”甚至

4、“tn”,还有其他许多无意义的组合。这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符:1.2方括号符号句点优点是通用,同时缺点也是通用为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符.方括号表示可能出现的单个字符1.3“或”符号句点和方括号只匹配单个字符,如果要匹配多个字符就要看”或”运算符了如果除了上面匹配的所有单词之外,你还想要匹

5、配“toon”,那么,你可以使用“

6、”操作符。“

7、”操作符的基本意义就是“或”运算。要匹配“toon”,使用“t(a

8、e

9、i

10、o

11、oo)n”正则表达式。这里不能使用方扩号,因为方括号只允许匹配单个字符;这里必须使用圆括号“()”。圆括号还可以用来分组,具体请参见后面介绍。1.4.1表示匹配次数的符号遇到单个字符的重复问题,就要看下面的符号表了表一显示了表示匹配次数的符号,这些符号用来确定紧靠该符号左边的符号出现的次数:1.4.2常用符号小结1句点.表示单个字符方括号[]表示可能出现字符集里的单个字符括号()可表示多个字符大括号{}表示次数转义字符“”一般正则表达式是由通配符和固

12、定字符组成1.4.3实例1图:匹配所有123-12-1234形式的社会安全号码假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。用来匹配它的正则表达式。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“”。看看下面那一行正则表达式是对的:(0-9){3}-(0-9){2}-(0-9){4}[0-9]{3}-[0-9]{2}-[0-9]{4}正确的是:1.4.4实例2假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-

13、9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上一个数量限定符号,如图所示:看看下面那一行正则表达式是对的:(0-9){3}-?(0-9){2}-?(0-9){4}[0-9]{3}-*[0-9]{2}-*[0-9]{4}正确的是:图:匹配所有123-12-1234和123121234形式的社会安全号码1.4.5实例3下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。