- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java正则表达式详解3
Java正则表达式详解
如果你曾经用过Perl 或任何其他内建正则表达式支持的语言,你一定知道用正则表达
式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么 “正则表达式”(Regular
Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。
许多语言,包括Perl、PHP、Python、JavaScript 和JScript,都支持用正则表达式处理文
本,一些文本编辑器用正则表达式实现高级 “搜索-替换”功能。那么Java 又怎样呢?本文
写作时,一个包含了用正则表达式进行文本处理的Java 规范需求 (Specification Request)已
经得到认可,你可以期待在JDK 的下一版本中看到它。
然而,如果现在就需要使用正则表达式,又该怎么办呢?你可以从Apache.org 下载源
代码开放的Jakarta-ORO 库。本文接下来的内容先简要地介绍正则表达式的入门知识,然后
以Jakarta-OROAPI 为例介绍如何使用正则表达式。
一、正则表达式基础知识
我们先从简单的开始。假设你要搜索一个包含字符 “cat”的字符串,搜索用的正则表
达式就是 “cat”。如果搜索对大小写不敏感,单词 “catalog”、“Catherine”、“sophisticated”
都可以匹配。也就是说:
500)this.style.width 500;border 0
1.1 句点符号
假设你在玩英文拼字游戏,想要找出三个字母的单词,而且这些单词必须以“t”字母
开头,以“n”字母结束。另外,假设有一本英文字典,你可以用正则表达式搜索它的全部
内容。要构造出这个正则表达式,你可以使用一个通配符——句点符号 “.”。这样,完整的
表达式就是 “t.n”,它匹配 “tan”、“ten”、“tin”和 “ton”,还匹配 “t#n”、“tpn”甚至 “tn”,
还有其他许多无意义的组合。这是因为句点符号匹配所有字符,包括空格、Tab 字符甚至换
行符:
500)this.style.width 500;border 0
1.2 方括号符号
为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号 (“[]”)里面指定看来
有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式
“t[aeio]n”只匹配 “tan”、“Ten”、“tin”和 “ton”。但 “Toon”不匹配,因为在方括号之内
你只能匹配单个字符:
500)this.style.width 500;border 0
1.3 “或”符号
如果除了上面匹配的所有单词之外,你还想要匹配 “toon”,那么,你可以使用 “|”操
作符。“|”操作符的基本意义就是 “或”运算。要匹配 “toon”,使用 “t(a|e|i|o|oo)n”正则表
达式。这里不能使用方扩号,因为方括号只允许匹配单个字符;这里必须使用圆括号 “()”。
圆括号还可以用来分组,具体请参见后面介绍。
500)this.style.width 500;border 0
1.4 表示匹配次数的符号
表一显示了表示匹配次数的符号,这些符号用来确定紧靠该符号左边的符号出现的次
数:
500)this.style.width 500;border 0
假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。
用来匹配它的正则表达式如图一所示。在正则表达式中,连字符 (“-”)有着特殊的意义,
它表示一个范围,比如从0 到9。因此,匹配社会安全号码中的连字符号时,它的前面要加
上一个转义字符 ““”。
500)this.style.width 500;border 0
图一:匹配所有123-12-1234 形式的社会安全号码
假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999
和999999999 都属于正确的格式。这时,你可以在连字符号后面加上 “?”数量限定符号,
如图二所示:
500)this.style.width 500;border 0
图二:匹配所有123-12-1234 和123121234 形式的社会安全号码
下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它
的正则表达式前面是数字部分 “[0-9]{4
您可能关注的文档
最近下载
- 《医疗和疾控机构后勤安全生产工作管理指南(2023年版)》——医用气体安全管理指南实践分享.pdf VIP
- 温州育英国际实验学校初一招生试卷语文试卷.docx VIP
- 建筑工程资料承包合同.docx VIP
- 房地产公司资金平衡表(深度好表).xlsx VIP
- 新解读《HJ 1285-2023屠宰及肉类加工业污染防治可行技术指南》最新解读.docx VIP
- 离心式冷水机组调试方案.pdf VIP
- 2024人教版小学三年级劳动技术上册第一单元:纸工大单元整体教学设计.docx
- 范例9:悬挑式脚手架专项施工方案.pdf VIP
- HSK(四级)词汇整理.pdf VIP
- 1994年全国高中化学竞赛试题.pdf VIP
文档评论(0)