`
webcode
  • 浏览: 6074616 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java中的正则表达式,揭开你神秘的面纱

 
阅读更多

java中的正则表达式,揭开你神秘的面纱

前言
好久以来,都听各位师兄说正则表达式很重要,很有用,但是自己从来没亲自用过,好多次想系统学一学,可是又放弃了,主要因为懒,总在给自己找理由,"现在时间不够,要找出一个整块的时间系统的学一学,不要搞半拉子事情,下次再学",就这样一拖再拖,最近工作不是太忙,想抓紧学一下吧,要不还不知道拖到什么时候呢,然后就用了一个晚上的时间,学了个大概,顿时豁然开朗,感觉原来这么简单,为什么我不早点学呢?
反思一下自己,感觉自己实在太懒了,不由想起一句打油诗"明日复明日,明日何其多",呵呵,有点酸了,但是细细想来,自己最近真的很少学习,好多书没看,邮件中好多记录下来需要总结的东西没有总结,好象每天除了上班完成自己的工作之外,其他时间都是在混日子,该动起来了,2006年还有3天就过去了,我该以何种姿态迎接2007呢?看来,自己得制定一些计划了,恩,这个下次再说,今天先谈谈java中关于正则表达式的用法.
首先介绍一些正则表达式的基础知识,可能大家都已经很熟了,但是我没怎么学过,写一遍,有助于记忆.
正则表达式的常用符号:
1.句点符号
句点符号'."匹配任意符号,除了换行符.但是不管匹配什么字符,都必须存在,不能为空.如:
a.b可以匹配a b,a b,acb,a9b等
2.方括号符号
为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符.
3.或符号
或符号"|"的基本意义就是或运算,比如想匹配abc,adc,abdc,可以利用"a(b|d|bd)c"来进行匹配
4.表示匹配次数的符号
表示匹配次数的符号
符号 次数
* 0次或多次
+ 一次或多次
? 0次或1次
{n} 正好n次
{n,m} n到m次之间
{n,} 大于等于n次
如:"ab*"可以匹配a,ab,abb,abbb
"ab+"可以匹配ab,abb,abbb
"ab{3}"只能匹配abbb
5.否运算符
否运算符'^"表示相反的意思,如果用在方括号内,"^"表示不想匹配的字符.如:
"a[^a-z]"可以匹配aA,a9,但是不能匹配aa,ab,ac....
6.圆括号(分组符号)
如果要把某些表达式作为一组,可以将其用括号括起来,如:
"a(b|d)+"中(b|d)作为一个整体匹配,可以匹配:abb,abd,adb....
7.其他常用符号
常用符号
符号 意义
/s 空白符(空格,tab,换行,换页,回车)
/S 非空白符([^/s])
/d 数字[0-9]
/D 非数字[^0-9]
/w 词字符[a-zA-Z_0-9]
/W 非词字符[^/w]
java中使用正则表达式简单示例
java中的正则表达式是在jdk1.4中引入的,主要在java.util.regex包,核心就两个类(Pattern类和Matcher类),使用特别简单,但是功能却很强大.使用方法很简单,主要就两句话,如下:
Patternp=Pattern.compile("你的正则表达式");
Matchermatcher
=p.matcher("要检验的字符串");
一个Pattern对象表示一个正则表达式的编译版本,静态的complie()方法将一个正则表达式字符串编译成一个Pattern对象.调用以输入字符串作为参数的Pattern.matcher()方法可以产生一个Matcher对象,利用Matcher对象可以判断各种类型的匹配是否成功或失败.
下面程序检验字符串是否符合这样的要求:
(1)总长度大于2
(2)以a开头,以b结尾
(3)字符串中都必须是字母,不能出现特殊字符和数字
Patternp=Pattern.compile("a[a-zA-Z]+b");
Matchermatcher
=p.matcher("abb");
System.out.println(matcher.matches());
下面这个示例代码的功能是分解出一句话中的每个单词
publicString[]parse(Stringstr)...{
ArrayListarray
=newArrayList();
Patternp
=Pattern.compile("(/w|')+");
Matchermatcher
=p.matcher(str);
while(matcher.find())
array.add(matcher.group());
String[]res
=newString[array.size()];
for(inti=0;i<array.size();i++)
res[i]
=array.get(i).toString();
returnres;
}
需要注意的地方
一些特殊符号,如"/s"在java中要这样表示://s

今天挺晚的了,好累,先写到这了啊.以后再聊这个话题,还有许多需要完善的地方.
分享到:
评论

相关推荐

    Java使用正则表达式提取XML节点内容的方法示例

    Java中提供了对正则表达式的支持,使得开发者可以使用正则表达式来匹配和提取字符串中的内容。 二、XML节点内容提取方法 在Java中,可以使用正则表达式来提取XML节点内容。下面是一个简单的示例: ```java public ...

    java正则表达式.zip

    在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心类。 **1. Pattern类** Pattern类是Java正则表达式的起点,它将一个正则表达式编译成一个模式对象。这个编译过程可以优化...

    Java根据正则表达式生成字符串—Xeger,automaton

    在本篇文章中,我们将深入探讨如何利用Java中的Xeger和automaton库来根据正则表达式生成随机字符串。 首先,我们要了解什么是正则表达式。正则表达式,也被称为regex,是由字符、特殊符号组成的模式,用于匹配一...

    java正则表达式匹配工具

    在Java中,正则表达式的使用主要依赖于`java.util.regex`包中的类,如`Pattern`和`Matcher`。 首先,我们来看`Pattern`类。这个类是正则表达式的模板,负责编译和存储正则表达式。一旦正则表达式被编译为`Pattern`...

    使用Java正则表达式分析处理日志

    Java中的正则表达式主要通过`java.util.regex`包中的类来实现,如`Pattern`和`Matcher`。 在日志处理中,我们通常需要完成以下任务: 1. **过滤日志级别**:日志通常包含不同的级别,如DEBUG、INFO、WARN、ERROR等...

    JAVA正则表达式大全

    正则表达式的学习需要对元字符、量词、预查、后向引用等概念有深入理解,同时掌握Java中`Pattern`和`Matcher`的使用方法,结合实际案例进行实践,才能灵活运用到实际项目中。在处理字符串相关问题时,熟练掌握正则...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java使用正则表达式判断手机号的方法示例

    3. Pattern和Matcher类的使用:在java中,Pattern类和Matcher类是用于正则表达式匹配的。Pattern类用于编译正则表达式,而Matcher类用于匹配字符串。 4. Pattern.compile()方法:Pattern.compile()方法用于编译正则...

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    常用正则表达式HTML,JAVA合集

    2. **Java中的正则表达式**: Java提供了`java.util.regex`包,通过`Pattern`和`Matcher`类支持正则表达式。以下是如何在Java中验证电话号码的一个例子: ```java import java.util.regex.Pattern; import java....

    java正则表达式验证

    java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效

    java_zhengze.rar_正则表达式_正则表达式 java

    正则表达式是编程语言中用于模式匹配和字符串处理的强大工具,在Java中也不例外。Java的正则表达式功能强大,可以用于验证输入、提取信息、替换文本等多种场景。本资料"java_zhengze.rar"提供了对Java正则表达式的...

    Java 使用正则表达式对象实现正则的获取功能

    在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则获取功能。 一、基本概念 在使用正则...

    Java正则表达式.ppt

    在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式的起源可以追溯到20世纪中叶,由Warren McCulloch和Walter Pitts的神经网络理论,以及...

    java Xeger 根据正则表达式生成满足的随机数据

    Java中的Xeger是一个非常有用的工具,它允许开发者根据指定的正则表达式生成随机的数据。Xeger是基于Java的org.apache.commons.text.RandomStringGenerator类和org.apache.commons.lang3.RandomStringUtils库的一个...

    正则表达式 Java 判断字串是否合理

    在Java中,通过`java.util.regex`包提供了对正则表达式的支持。 ### 2. 邮箱地址验证 在实际应用中,经常需要验证用户输入的邮箱地址是否有效。文件中的方法`checkEmail`实现了这一功能,其正则表达式为: ```java...

    java正则表达式验证IP地址

    在Java中,可以使用正则表达式来验证IP地址是否正确。 正则表达式的作用是将字符串分割成多个小组,并通过这些小组来匹配指定的模式。在Java中,我们可以使用java.util.regex包来使用正则表达式。在这个包中,有两...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"&lt;title&gt;XXXX&lt;/title&gt;"中的文字XXXX,用正则表达式获取指定...

    java 使用正则表达式验证电话号码的格式

    java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式

    java 字符串 正则表达式 详细实例代码

    本篇将深入探讨Java中的字符串、正则表达式及其在实际编程中的详细实例代码。 1. **字符串基础** - Java中的字符串是不可变的,这意味着一旦创建了字符串对象,就不能更改其内容。这由`final`关键字确保,提高了...

Global site tag (gtag.js) - Google Analytics