服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

正则表达式和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”。正则表达式匹配还允许你检查一个字符串是否符合某个具体的 句法形式,比如是不是一个电子邮件地址。

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

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

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

  特殊字符有着特别的用处。例如,.可匹配除了换行符之外的任意字符。与 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')
/cxt对应于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]

扫描关注微信公众号