标题: [基础] 正则表达式和Java编程语言
ljjk5
元帅
Rank: 1


荣誉会员奖章
UID 46706
精华 1
积分 99426
帖子 49691
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
正则表达式和Java编程语言

 应用程序常常需要有文本处理功能,比如单词查找、电子邮件确认或XML文档 集成。这通常会涉及到模式匹配。Perl、sed或awk等语言通过使用正则表达式来 改善模式匹配,正则表达式是一串字符,它所定义的模式可用来查找匹配的文本。 为了使用JavaTM编程语言进行模式匹配,需 要使用带有许多charAt子字串的StringTokenizer类,读取字母或符号以便处理文本。这常常导致复杂或凌乱的代码。   现在不一样了。
  2平台标准版(J2SETM)1.4版包含一个名 为java.util.regex的新软件包,使得使用正则表达式成为可能。 目前的功能包括元字符的使用,它赋予正则表达式极大的灵活性
  本文概括地介绍了正则表达式的使用,并详细解释如何利用java.util.regex软件包来使用正则表达式,用以下常见情形作为 例子:
简单的单词替换 电子邮件确认 从文件中删除控制字符 查找文件   为了编译这些例子中的代码和在应用程序中使用正则表达式,需要安装 J2SE 1.4版。
  构造正则表达式
  正则表达式是一种字符模式,它描述的是一组字符串。你可以使用java.util.regex软件包,查找、显示或修改输入序列中出现的 某个模式的一部分或全部。
  正则表达式最简单的形式是一个精确的字符串,比如“Java”或 “programming”。正则表达式匹配还允许你检查一个字符串是否符合某个具体的 句法形式,比如是不是一个电子邮件地址。
  为了编写正则表达式,普通字符和特殊字符都要使用:
  
$^.*
+?['']
.[/td]  [td]

  正则表达式中出现的任何其他字符都是普通字符,除非它前面有个。
  特殊字符有着特别的用处。例如,.可匹配除了换行符之外的任意字符。与s.n这样的正则表达式匹配的是任何三个字符的、以s开始以n结束的字符串,包括sun和son。
  在正则表达式中有许多特殊字符,可以查找一行开头的单词,忽略大小写或 大小写敏感的单词,还有特殊字符可以给出一个范围,比如a-e表 示从a到e的任何字母。
  使用这个新软件包的正则表达式用法与Perl类似,所以如果你熟悉Perl中正则 表达式的使用,就可以在Java语言中使用同样的表达式语法。如果你不熟悉正则 表达式,下面是一些入门的例子:
   [tr]构造匹配于[/tr][tr][/tr][tr]字符[/tr][tr][/tr][tr]字符类[/tr][tr][/tr][tr]预定义的字符类[/tr]
x字符 x
\反斜线字符
n八进制值的字符0n (0<=n<=7)
nn八进制值的字符 0nn (0<=n<=7)
mnn八进制值的字符0mnn 0mnn (0<=m<=3, 0<=n<=7)
xhh十六进制值的字符0xhh
uhhhh十六进制值的字符0xhhhh
制表符('u0009')
换行符 ('u000A')
回车符 ('u000D')
f换页符 ('u000C')
a响铃符 ('u0007')
e转义符 ('u001B')
cxT对应于x的控制字符 x
[abc]a, b, or c (简单类)
[^abc]除了a、b或c之外的任意 字符(求反)
[a-zA-Z]a到z或A到Z ,包含(范围)
[a-z-[bc]]a到z,除了b和c : [ad-z](减去)
[a-z-[m-p]]a到z,除了m到 p: [a-lq-z]
[a-z-[^def]]d, e, 或 f
.任意字符(也许能与行终止符匹配,也许不能)
d数字: [0-9]
D非数字: [^0-9]
s空格符: [ x0Bf ]
S非空格符: [^s]
w单词字符: [a-zA-Z_0-9]
W非单词字符: [^w]

网友 ljjk5 签名 - 网友社区 ===
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-8 00:59
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP