- 浏览: 110269 次
- 性别:
- 来自: 广州
文章分类
正则表达式看似简单,要灵活使用却很难,至少我感觉是这样,(可能是做少了练习),你说要你写个邮件的正则表达式什么的,你都总是出错,别人怎么看你?唉,我当初公司评级考试的时候,就是写错了,导致严重后果啊。我能说什么呢,向谁去说呢,自己确实没学好,老忘记,对^$的恐惧感,那些简单的\d、\w、\s的意思都记不住或者记不清,导致不敢用。学业不精啊,误己误人!
参照 http://blog.csdn.net/allwefantasy/article/details/3136570
位于 java.util.regex 下,提供一些列很有用很强大的正则表达式处理接口:
接口
MatchResult 此接口包含用于确定与正则表达式匹配结果的查询方法。通过 MatchResult 可以查看匹配边界、组和组边界,但是不能修改。
匹配边界、组和组边界 ???????
类
Matcher
public final class Matcher extends Object implements MatchResult通过解释 Pattern 对 character sequence 执行匹配操作的引擎。 —————————— 这就是‘引擎’!!!
可以使用它执行三种不同的匹配操作:
matches 方法尝试将整个输入序列与该模式匹配。 —————————————— 注意:需要匹配整个区域
lookingAt 尝试将输入序列从头开始与该模式匹配。 与 matches 方法类似,此方法始终从区域的开头开始;与之不同的是,它不需要匹配整个区域。
与 matches 方法类似,此方法始终从区域的开头开始;与之不同的是,它不需要匹配整个区域。
find 方法扫描输入序列以查找与该模式匹配的下一个子序列。
每个方法都返回一个表示成功或失败的布尔值
Pattern ———————————————————————————————————————————————————————————————————————————————————————————— 通过compile(String regex, int flags) 来建立匹配模式,无构造方法
public final class Pattern extends Object implements Serializable 正则表达式的编译表示形式。
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象
异常
PatternSyntaxException
1.1 句点符号
1.2 方括号符号
为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配
正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符 —————————————— !!!!!!!!!!!!
1.3 “或”符号
如果除了上面匹配的所有单词之外,你还想要匹配“toon”,那么,你可以使用“|”操作符。“|”操作符的基本意义就是“或”运算。
要匹配“toon”,使用“t(a|e|i|o|oo)n”正则表达式。这里不能使用方括号,
因为方括号只允许匹配单个字符;这里必须使用圆括号“()”。圆括号还可以用来分组,具体请参见后面介绍。—————————— ()威力大!
1.4 表示匹配次数的符号
表一显示了表示匹配次数的符号,这些符号用来确定紧靠该符号【左边】的符号出现的次数
* 0或多次
+ 1或多次
?0或1次
{n} 恰好n次 ______ 注意是花括号 {}!!!!!
{n,m} 从n到m次都可以,m>n—————————— 或者说:至少 n 次,但是不超过 m 次
在正则表达式中,连字符(“-”)有着特殊的意义,它表示一个范围,比如从0到9。
因此,匹配社会安全号码中的连字符号时,它的前面要加上一个转义字符“\”
1.5 “否”符号
“^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符。例如,图四的正则表达式匹配所有单词
匹配所有单词,但“X”开头的除外—————— [^x][a-z]+
:注意,下面只会去尝试匹配一个字符
“\s”符号是空白符号,匹配所有的空白字符,包括Tab字符
\S 上者的非
\d 数字0-9
\D
\w 单词字符:[a-zA-Z_0-9] 就是字母、数字
\W
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
Logical 运算符
XY X 后跟 Y
X|Y X 或 Y
(X) X,作为【捕获组】 —————————— 这个概念很重要
Back 引用
\n 任何匹配的 nth 捕获组
引用
\ Nothing,但是引用以下字符
\Q Nothing,但是引用所有字符,直到 \E
\E Nothing,但是结束从 \Q 开始的引用
特殊构造(非捕获)
(?:X) X,作为非捕获组
(?idmsux-idmsux) Nothing,但是将匹配标志i d m s u x on - off
(?idmsux-idmsux:X) X,作为带有给定标志 i d m s u x on - off
的非捕获组 (?=X) X,通过零宽度的正 lookahead
(?!X) X,通过零宽度的负 lookahead
(?<=X) X,通过零宽度的正 lookbehind
(?<!X) X,通过零宽度的负 lookbehind
(?>X) X,作为独立的非捕获组
usePattern(Pattern newPattern) 更改此 Matcher 用于查找匹配项的 Pattern。
public String group(int i)返回上次匹配操作的某个group。如果匹配成功,但是没能找到group,则返回null。
发表评论
-
是个帅哥
2013-09-06 16:58 0crm ! oa ! XFire原理 ... -
wew
2013-09-05 18:23 0URLClassLoader java反射 c ... -
we44
2013-09-05 17:35 0hibernate session 到底 ... -
jdk动态代理、cglib
2013-09-04 13:25 0java对代理模式的支持 ---动态代理 上面的 ... -
设计模式
2013-09-04 13:23 0简单工厂(Simple ... -
saf
2013-09-03 15:03 0package thread; public clas ... -
wait、sleep 等 的区别
2013-09-03 13:22 703这是一个经常遇到的考题。面试中可以说90%都会 ... -
java Event机制 、 observer设计模式
2013-09-02 19:07 13585研究了一下java Event机制 和observe ... -
CodeSimplifier
2013-08-27 20:49 1090看开源项目源代 ... -
iBatis的学习
2012-08-16 23:34 1083配置文件主要是 SqlMapConfig.xml o ... -
jsp复习
2012-08-15 23:12 0jsp中4中数据的范围 page、 request、 ... -
Interface和abstract class
2012-08-15 23:04 0Abstract Class类似于 Abstract D ... -
java日期
2012-08-14 23:40 0java日期相关类有: java.util.Da ... -
java.math 的学习
2012-08-13 23:48 1063位于java.math下的几个类在处理要求准确数值计算时 ... -
java PrintStream的理解
2012-08-14 21:47 13510PrintStream 其实是FilterOutputStre ... -
java Formatter 的学习
2012-08-13 23:47 2511Formatter位于java.util中,它与java ... -
java安全管理器
2012-08-12 21:14 0SecurityManager http://blog ... -
java.util的API的学习
2012-08-13 23:43 2032接口 Collection Collection ... -
java中异常的简单理解
2012-08-12 21:09 893众所周知,java的顶级异 ... -
java.lang的API的学习
2012-08-12 21:06 990java.lang i: Appendable 实现 ...
相关推荐
java正则表达式,初步认识正则表达式的应用。文档教程
Java正则表达式学习笔记,比较基础,适合初学者
快速学习java 正则表达式并且掌握,实现轻松的学习,不需要发费很多的时间
一篇学习Java正则表达式的文章。
在学习完该教程后,应该对正则表达式有了初步的了解,并能熟练地运用 java.util.regex 包中的关于正则表达式的类库,为今后学习更高级的正则表达式技术奠定良好的基础。 教程中所有的源代码都在 src 目录下,可以...
JAVA正则表达式实例教程.pdf 1、正则表达式的知识要点 1、正则表达式是什么? 正则表达式是一种可以用于模式匹配和替换的强有力的工具。 2、正则表达式的优点? 更少的代码,更高的效率。 3、正则表达式如何使用? ...
java的正则表达式的详细说明,里面有详细的说明和例子,是要学习java正则表达式的好资料。
还有一个大概在上传中错误了,导致没有了,再重新上传一次。 本文全文译自 Java Tutorial 的 ...适合 Java正则表达式的初学者学习。原文链接:http://java.sun.com/docs/books/tutorial/essential/regex/index.html
java正则表达式入门介绍,java正则表达式学习帮助文档。。。
因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式...
正则表达式学习视频,包括正则表达式的简单语法,高级语法,和在JS。java语言中的应用
对于如何使用正则表达式来解决性能不佳、误报、漏报等常见的错误以及完成一些常见的任务,《正则表达式经典实例》给出了涉及基于C#、Java、JavaScript、Perl、PHP、Python、Ruby和VB.NET等编程语言的解决方案。...
正则表达式是程序员必备的强大工具,得到了各种Unix实用程序,以及Perl、Java、JavaScript、C#等编程语言的支持。读完本书,你会对正则表达式的常用语法了然于胸。掌握正则表达式是提升编程效率、节约时间的一大法.....
用来学习正则表达式的小工具(JAVA版的) 可以及时的测试自己写的正则表达式 Welcome to id0096.cn
本教程旨在帮助你驾驭Java正则表达式,同时也帮助我复习正则表达式。 什么是正则表达式? 正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言...
包含所有正则表达式的内容,还有个人的总结与心得!!!
该文件总结了一部分正则表达式,在学习判断用户名和密码的过程中会有所帮助,仅供参考,如果有总结不对的地方,请联系作者修改
Java正则表达式在字符串处理和模式匹配中扮演着重要角色。为了帮助准备面试的你更好...通过学习这些问题和解析,你将掌握复杂匹配规则的设计思路和高效字符串处理的技巧,为你在Java正则表达式面试中脱颖而出提供帮助。