1 / 13
文档名称:

java - 正则表达式详解.doc

格式:doc   大小:358KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java - 正则表达式详解.doc

上传人:yzhluyin1 2017/2/24 文件大小:358 KB

下载得到文件列表

java - 正则表达式详解.doc

相关文档

文档介绍

文档介绍:Java 正则表达式详解如果你曾经用过 Perl 或任何其他内建正则表达式支持的语言, 你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”( Regular Expression )就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。许多语言, 包括 Perl 、 PHP 、 Python 、 JavaScript 和 JScript , 都支持用正则表达式处理文本, 一些文本编辑器用正则表达式实现高级“搜索- 替换”功能。那么 Java 又怎样呢?本文写作时, 一个包含了用正则表达式进行文本处理的 Java 规范需求( Specification Request ) 已经得到认可,你可以期待在 JDK 的下一版本中看到它。然而, 如果现在就需要使用正则表达式, 又该怎么办呢?你可以从 下载源代码开放的 Jakarta-ORO 库。本文接下来的内容先简要地介绍正则表达式的入门知识,然后以 Jakarta-ORO API 为例介绍如何使用正则表达式。一、正则表达式基础知识我们先从简单的开始。假设你要搜索一个包含字符“ cat ”的字符串, 搜索用的正则表达式就是“ cat ”。如果搜索对大小写不敏感, 单词“ catalog ”、“ Catherine ”、“ sophisticated ”都可以匹配。也就是说: 句点符号假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。另外, 假设有一本英文字典, 你可以用正则表达式搜索它的全部内容。要构造出这个正则表达式, 你可以使用一个通配符——句点符号“.”。这样, 完整的表达式就是“ ”, 它匹配“ tan ”、“ ten ”、“ tin”和“ ton ”, 还匹配“ t#n ”、“ tpn ”甚至“tn”, 还有其他许多无意义的组合。这是因为句点符号匹配所有字符,包括空格、 Tab 字符甚至换行符: 方括号符号为了解决句点符号匹配范围过于广泛这一问题, 你可以在方括号(“[]”) 里面指定看来有意义的字符。此时, 只有方括号里面指定的字符才参与匹配。也就是说, 正则表达式“ t[aeio]n ”只匹配“ tan ”、“ Ten ”、“ tin”和“ ton ”。但“ Toon ”不匹配, 因为在方括号之内你只能匹配单个字符: “或”符号如果除了上面匹配的所有单词之外,你还想要匹配“ toon ”,那么,你可以使用“|”操作符。“|”操作符的基本意义就是“或”运算。要匹配“ toon ”,使用“ t(a|e|i|o|oo)n ”正则表达式。这里不能使用方扩号, 因为方括号只允许匹配单个字符; 这里必须使用圆括号“()”。圆括号还可以用来分组,具体请参见后面介绍。 表示匹配次数的符号表一显示了表示匹配次数的符号,这些符号用来确定紧靠该符号左边的符号出现的次数: 假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是 999-99-9999 。用来匹配它的正则表达式如图一所示。在正则表达式中, 连字符(“-”) 有着特殊的意义, 它表示一个范围,比如从 0到9 。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”。图一:匹配所有 123-12-1234 形式的社会安全号码假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即, 999-99-9999 和 999999999 都属于正确的格式。这时,你可以在连字符号后面加上“?”数量限定符号,如图二所示: 图二:匹配所有 123-12-1234 和 123121234 形式的社会安全号码下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4} ”, 再加上字母部分“[A-Z]{2} ”。图三显示了完整的正则表达式。图三:匹配典型的美国汽车牌照号码,如 8836KV “否”符号“^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符。例如, 图四的正则表达式匹配所有单词,但以“X”字母开头的单词除外。图四:匹配所有单词,但“X”开头的除外 圆括号和空白符号假设要从格式为“ June 26, 1951 ”的生日日期中提取出月份部分, 用来匹配该日期的正则表达式可以如图五所示: 图五:匹配所有 Moth DD,YYYY 格式的日期新出现的“\s”符号是空白符号, 匹配所有的空白字符, 包括 Tab 字符。如果字符串正确匹配, 接下来如何提取出月份部分呢?只需在月份周围加上一个圆括号创建一个组,然后用 ORO API (本文后面详细讨论)提取出它的值。修改后的正则表达式如图六所示:

最近更新

案例年龄特点是依据 11页

承包合同范本通用版(10篇) 18页

大班语言教案及教学反思《猪先生去野餐》 17页

2024年耐辐照玻璃棉项目资金筹措计划书代可行.. 80页

2024年联接机械项目资金筹措计划书代可行性研.. 72页

催化剂及助剂项目资金申请报告代可行性研究报.. 60页

大学生消防安全知识游戏策划 4页

203厂房扩建防腐-施工方案a 18页

神新公司本质安全管理基础知识 8页

2024年兴安职业技术学院单招职业技能测试题库.. 56页

2024年山东省潍坊市高职单招职业适应性测试题.. 75页

2024年惠州工程职业学院单招职业适应性测试试.. 56页

2024年河南省高职单招职业适应性测试模拟试题.. 56页

2024年重庆电子工程职业学院职业倾向性测试题.. 56页

一级建造师之一建公路工程实务题库1000道【学.. 302页

一级建造师之一建工程法规题库1000道精品附答.. 334页

演出经纪人之演出市场政策与法律法规题库400道.. 117页

演出经纪人考试题库1000道含完整答案【典优】.. 275页

2024年幼儿园教学设计(集合15篇) 44页

2024年幼儿园感统游戏足球方案范文(通用11篇.. 20页

2024年幼儿园常规工作总结 38页

2024年幼儿园小班活动教案 31页

2024年幼儿园小班教学个人工作计划 22页

2024年幼儿园小小班学期工作计划 13页

四川省成都外国语学校2024-2024学年高二下学期.. 14页

锂电池厂用蒸汽的作用 8页

2023年云南省社区(村)基层治理专干招考聘用50.. 197页

江苏省常州市钟楼实验中学七年级英语下册 Uni.. 35页

人教版二年级下册《轴对称图形》公开课公开课.. 33页

外研版八年级英语下册期中测试卷及答案 8页