- 浏览: 111771 次
- 性别:
- 来自: 广州
文章分类
正则表达式看似简单,要灵活使用却很难,至少我感觉是这样,(可能是做少了练习),你说要你写个邮件的正则表达式什么的,你都总是出错,别人怎么看你?唉,我当初公司评级考试的时候,就是写错了,导致严重后果啊。我能说什么呢,向谁去说呢,自己确实没学好,老忘记,对^$的恐惧感,那些简单的\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 749这是一个经常遇到的考题。面试中可以说90%都会 ... -
java Event机制 、 observer设计模式
2013-09-02 19:07 13672研究了一下java Event机制 和observe ... -
CodeSimplifier
2013-08-27 20:49 1146看开源项目源代 ... -
iBatis的学习
2012-08-16 23:34 1116配置文件主要是 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 1097位于java.math下的几个类在处理要求准确数值计算时 ... -
java PrintStream的理解
2012-08-14 21:47 13558PrintStream 其实是FilterOutputStre ... -
java Formatter 的学习
2012-08-13 23:47 2547Formatter位于java.util中,它与java ... -
java安全管理器
2012-08-12 21:14 0SecurityManager http://blog ... -
java.util的API的学习
2012-08-13 23:43 2079接口 Collection Collection ... -
java中异常的简单理解
2012-08-12 21:09 933众所周知,java的顶级异 ... -
java.lang的API的学习
2012-08-12 21:06 1027java.lang i: Appendable 实现 ...
相关推荐
【Java正则表达式学习】 Java正则表达式是Java编程语言中用于处理字符串的强大工具,自JDK1.4版本起被引入。它源于PHP并迅速流行,主要用于复杂字符串的验证和处理。正则表达式可以高效地完成对字符串的检查、分割...
### Java正则表达式学习 #### 一、简介 在Java编程中,正则表达式是一种非常实用且强大的工具,用于处理字符串模式匹配与搜索替换等操作。通过本篇文章,我们将快速入门Java中的正则表达式,并掌握其基本用法。 #...
### Java正则表达式基础知识与应用 #### 一、引言 正则表达式是一种强大的文本处理工具,它能够帮助开发者高效地进行字符串的搜索、替换等操作。Java中的正则表达式支持广泛的标准和特性,是进行文本处理任务的理想...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...
Java正则表达式是Java编程语言中的一个强大工具,它用于模式匹配和字符串处理,尤其在数据验证、文本检索和替换等方面发挥着重要作用。...现在,打开`java正则表达式Regex.html`,开始你的Java正则表达式学习之旅吧!
Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...
#### 三、Java正则表达式的实践学习 学习Java正则表达式,理论与实践并重。通过大量的匹配实例进行学习,可以更深刻地理解其工作原理和使用技巧。这对于从未接触过正则表达式或对其基础概念尚不熟悉的学习者来说,...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。正则表达式在各种场景下都有广泛应用,如数据验证、文本提取、搜索替换等。本篇文章将深入探讨Java中的...
" + Pattern.compile(".bb")....总之,Java正则表达式是开发过程中处理文本的强大工具,熟练掌握可以极大地提高文本处理的效率和准确性。通过深入学习和实践,你可以编写出复杂的正则表达式来解决各种字符串处理问题。
通过运行提供的“java正则表达式截取demo”,你不仅可以学习到基本的正则表达式操作,还可以了解到如何在实际项目中应用这些知识。示例可能包括了不同类型的正则表达式以及它们在截取字符串时的具体用法,这对于提升...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。本教程将深入讲解Java中的正则表达式,并提供丰富的实例来帮助开发者理解和应用这些概念。 1. 正则...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,...通过阅读《Java 正则表达式的总结和一些小例子.pdf》和《Java正则表达式详解.pdf》,你将能够深入学习和实践更多正则表达式的用法,进一步提升编程技能。
### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...