`
xiaowei1115
  • 浏览: 4914 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

在java中运用正则表达式

    博客分类:
  • Java
阅读更多
在java中运用正则表达式

很多编程语言都有自己的正则表达式。感觉大致差不多。但也有自己的特点。记录一下正则表达式在java中的用法
一、语法
1、句点符号
“.”是一个通配符,匹配所有字符,包括空格、Tab字符甚至换行符
eg:a.b  匹配 aab或abb或acb或adb等等

2、方括号符号
“[]”是一个范围匹配方式,只有方括号里面指定的字符才参与匹配,在方括号之内你只能匹配单个字符:
eg:[abcd]x 可以匹配ax或bx或cx或dx,而不能匹配abx等


3、圆括号符号
“()”可以指定一组表达式
eg:([abc]*)([01234]*)

4、或符号
“|”基本就是“或”运算。因为方括号只允许匹配单个字符,这里必须使用圆括号“()”。
eg:x(a|b|c)y 或以匹配 xay或xby或xcy

5、否符号
“^”表示不想要匹配的字符
eg:[^0-9]匹配非0到9这些数字的其它字符

6、匹配次数的符号
引用

*     0次或多次
+     1次或多次
?     0次或1次
{n}   恰好n次
{n,m} 从n次到m次




7、连字符号
“-”有着特殊的意义,它表示一个范围,比如从0到9。
eg:[a-z0-9] 匹配 a到z或0到9的字符

假设我们要在文本文件中搜索美国的社会安全号码。这个号码的格式是999-99-9999。用来匹配它的正则表达式如图一所示。在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”。

图一:匹配所有123-12-1234形式的社会安全号码



假设进行搜索的时候,你希望连字符号可以出现,也可以不出现——即,999-99-9999和999999999都属于正确的格式。这时,你可以在连字符号后面加上“?”数量限定符号,如图二所示:


图二:匹配所有123-12-1234和123121234形式的社会安全号码

下面我们再来看另外一个例子。美国汽车牌照的一种格式是四个数字加上二个字母。它的正则表达式前面是数字部分“[0-9]{4}”,再加上字母部分“[A-Z]{2}”。图三显示了完整的正则表达式。


图三:匹配典型的美国汽车牌照号码,如8836KV



8、其它符号
\d 相当 [0-9]
\D 相当 [^0-9]
\w 相当 [A-Z0-9]
\W 相当 [^A-Z0-9]
\s 相当 [\t\n\r\f]
\S 相当 [^\t\n\r\f]

二、一些实例
首先我们来看看IP地址。IP地址有4个字节构成,每一个字节的值在0到255之间,各个字节通过一个句点分隔。因此,IP地址中的每一个字节有至少一个、最多三个数字。图八显示了为IP地址编写的正则表达式:


图八:匹配IP地址


三、在java中处理表达式
Java代码
String patternString = "\\s*\\p{Punct}\\s*"; 
try{ 
    Pattern pattern = Pattern.compile(patternString); 
    Matcher matcher = pattern.matcher(input); 
    if (matcher.matches()){ 
      //... 
    } 
}catch (PatternSyntaxException e){ 
    //... 






例子及图片有些是从网上收集的,在些向原创者表示感谢!
链接:http://ll-feng.iteye.com/blog/290874
分享到:
评论

相关推荐

    JAVA 正则表达式 教程

    在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...

    精通正则表达式 中英文

     《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 此书为英文版,因为中文...

    精通正则表达式(第三版)

    随着互联网的迅速发展,几乎...《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。

    正则表达式 操作 匹配 读取

    常用正则表达式运用 正则表达式的匹配 统计代码 行数 用正则表达式读取 html文件中的 email信息

    精通正则表达式(第三版)

    《精通正则表达式(第3版)》...《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。

    精通正则表达式(第3版) 英文版

    《精通正则表达式(第3版)》,以明晰轻松的笔调向程序员深入浅出地讲解复杂的知识,并给出了现实世界中复杂问题的解决办法,读者能够立刻运用书中丰富的知识,巧妙而高效地解决各种问题。 “如果你的工作需要用到...

    正则表达式基础以及开发中的一些运用

    正则表达式简介 工具软件RegexBuddy的运用 正则表达式规则 正则表达式的匹配模式 开发正则表达式的流程 开发软件中使用正则表达式将大大提高...java程序中使用正则表达式 javascript中使用正则表达式 以及一些课后作业

    JAVA正则表达式详解

    介绍了正则表达式的强大功能。只要正确运用,正则表达式能够在字符串提取和文本修改中起到很大的作用。另外,还介绍了如何在Java程序中通过Jakarta-ORO库利用正则表达式。

    java正则表达式.doc

    只要正确运用,正则表达式能够在字符串提取和文本修改中起到很大的作用。另外,我还介绍了如何在Java程序中通过Jakarta-ORO库利用正则表达式。至于最终采用老式的字符串处理方式(使用StringTokenizer,charAt,和...

    JAVA正则表达式实例教程

    运用java语言 写出的正则表达式 功能非常强大

    Java正则表达式应用-Jakarta-ORO篇.doc

    Java正则表达式应用-Jakarta-ORO篇,这里详细的统计了正则表达式的在java中的运用,

    java正则表达式帮助文档(全)

    正则表达式用的地方很多,相信你懂的,下载后好好运用吧!好好学习天天向上。

    通用正则表达式

    正则表达式,常用的几种规范,能够更加灵活运用数字之间的判断条件,常用于数据输入的时候,进行的判断。

    Java正则表达式-详解(附相关真题)

    目录正则表达式1. 正则标记1.1 字符1.2 字符类1.3 预定义字符类1.4 边界匹配器(java一般不用到)1.5 Greedy 数量词1.6 Logical 运算符2. String类支持3. Java.util.regex包支持3.1 Pattern类(常用方法)3.2 Matcher类...

    java正则表达式

    java语言中的正则表达式的具体内容和升级的内容,便于快速学习和熟练运用。

    java 正则表达式

    该资料介绍了正则表达式的用法,通过学习能够更好的掌握如何运用正则表达式

    java正则表达式的简单运用

    主要为大家详细介绍了java正则表达式的简单运用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    javascript正则表达式RegExp入门图文教程

    例子:在var str = “asdfghj” 中加入一个”字符在正常情况下是无法成立的,但运用正则表达式中的转义字符则”\”可以让他成立; 在”前加入转义符“\”可以使得变量成立,在图中转义字符+双引号成功变为一个文本...

    深入浅解正则表达式在Java中的使用

    别小看它的作用, 在工作学习中灵活运用正则表达式处理字符串能够大幅度提高效率, 编程的快乐来得就是这么简单. •一下子给出一堆匹配的规则可能会让人恐惧, 下面将由浅入深讲解正则表达式的使用. 从简单例子认识...

Global site tag (gtag.js) - Google Analytics