您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
正则表达式和Java编程语言
[文章信息]
作者:
时间:2003-06-11
出处:Sun
责任编辑:方舟
[文章导读]
应用程序常常需要有文本处理功能,比如单词查找、电子邮件确认或XML文档 集成......
advertisement
热点推荐
· 11.15软件精选 制作MSI文件
· 闪客五周年之闪客光荣榜
· 用Winamp“品尝”无限音乐
· 网络加、解密的技术应用
· 闪客五周年之闪客光荣榜:zoron
[正文]
  应用程序常常需要有文本处理功能,比如单词查找、电子邮件确认或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”。正则表达式匹配还允许你检查一个字符串是否符合某个具体的 句法形式,比如是不是一个电子邮件地址。

  为了编写正则表达式,普通字符和特殊字符都要使用:

 
\$ ^ . *
+ ? [' ']
\.     

  正则表达式中出现的任何其他字符都是普通字符,除非它前面有个 \

  特殊字符有着特别的用处。例如,.可匹配除了换行符之外的任意字符。与 s.n这样的正则表达式匹配的是任何三个字符的、以s 开始以n结束的字符串,包括sunson

  在正则表达式中有许多特殊字符,可以查找一行开头的单词,忽略大小写或 大小写敏感的单词,还有特殊字符可以给出一个范围,比如a-e表 示从ae的任何字母。

  使用这个新软件包的正则表达式用法与Perl类似,所以如果你熟悉Perl中正则 表达式的使用,就可以在Java语言中使用同样的表达式语法。如果你不熟悉正则 表达式,下面是一些入门的例子:

构造 匹配于
字符  
x 字符 x
\\ 反斜线字符
\0n 八进制值的字符0n (0 <= n <= 7)
\0nn 八进制值的字符 0nn (0 <= n <= 7)
\0mnn 八进制值的字符0mnn 0mnn (0 <= m <= 3, 0 <= n <= 7)
\xhh 十六进制值的字符0xhh
\uhhhh 十六进制值的字符0xhhhh
\t 制表符('\u0009')
\n 换行符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 响铃符 ('\u0007')
\e 转义符 ('\u001B')
\cx T对应于x的控制字符 x
 
字符类
[abc] a, b, or c (简单类)
[^abc] 除了abc之外的任意 字符(求反)
[a-zA-Z] azAZ ,包含(范围)
[a-z-[bc]] az,除了bc[ad-z](减去)
[a-z-[m-p]] az,除了mp[a-lq-z]
[a-z-[^def]] d, e, 或 f
预定义的字符类
. 任意字符(也许能与行终止符匹配,也许不能)
\d 数字: [0-9]
\D 非数字: [^0-9]
\s 空格符: [ \t\n\x0B\f\r]
\S 非空格符: [^\s]
\w 单词字符: [a-zA-Z_0-9]
\W 非单词字符: [^\w]


·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 深入理解Collections API
  • 优化JAVA性能的几种方法
  • Java技术实现数据库应用系统慨述
  • Java声音技术详解
  • 对《Java与模式》中工厂方法模式的异议
  • 从重构的角度学习bridge设计模式
  • Java对等计算实践:基于 IP 多播的发现
  • Java中finalize()的另类用法
  • Corba的模块模型概况
  • Servlet中如何捕获Session事件?
  • 浅谈Java的输入输出流
  • 用Socket类实现HTTP协议客户端应用
  • 11.15软件精选 制作MSI文件
  • 闪客五周年之闪客光荣榜
  • 兰欣推出我国第一款网络游戏专用音箱
  • 玩家发现117亡灵种族Bug
  • [配置推荐]极品HIFI配置
  • 东瀛美少女COSPLAY(55)
  • 用Winamp“品尝”无限音乐
  • 迷你型PStwo全面透析专题
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索