Java正则表达式
字符类
字符
|
说明
|
[abc]
|
a,b或c中的任意一个字符
|
[^abc]
|
除a,b或c中的字符外的任意一个字符(补)
|
[a-zA-Z]
|
A至Z或a至z中的任意一个字符(范围)
|
[a-d[m-p]]
|
a至d,m至p中的任意一个字符:[a-dm-p] (并)
|
[a-z&&[def]]
|
d ,e 或者f(交)
|
[a-z&&[^def]]
|
a 至z但除d、e或f外(减)
|
说明:[]中只匹配单个字符.
因为-表示范围,所以要匹配-要使用\-。
预定义字符
字符
|
说明
|
.
|
通配符,匹配除最后行终止符\n之外的任意字符。
|
\
|
转义字符,如\\匹配\,\.匹配.,\-匹配-等。
|
\d
|
数字:[0-9]
|
\D
|
非数字:[^0-9]
|
\s
|
空格字符:[\t\n\x0B\f\r]
|
\S
|
非空格字符:[^\s]
|
\w
|
单词字符:[a-bA-Z_0-9]
|
\W
|
非单词字符:[^\w]
|
|
|
|
|
|
|
量词
字符
|
说明
|
贪婪模式(Greedy )(默认)
|
勉强模式(Reluctant)
|
占有模式(Possessive)
|
|
X?
|
X??
|
X?+
|
匹配X ,0或1次
|
X*
|
X*?
|
X*+
|
匹配X ,至少0次(0或0次以上)
|
X+
|
X+?
|
X++
|
匹配X ,至少1次(1或1次以上)
|
X{n}
|
X{n}?
|
X{n}+
|
匹配X,n次
|
X{n,}
|
X{n,}?
|
X{n,}+
|
匹配X,至少n次
|
X{n,m}
|
X{n,m}?
|
X{n,m}+
|
匹配X,至少n次,但不多于m次
|
Greedy的表达式会一直匹配下去,直到匹配不下去为止。(如果你发现表达式匹配的结果和预期的不符),非常有可能是因为,你以为表达式会只匹配前面几个字符,而实际上他是greedy的,因此会一直匹配下去。
Reluctant 的表达式只匹配最少的字符。也称为lazy, minimal matching, non-greedy, 或ungreedy。
Possessive: 目前只有Java支持(其他语言都不支持)。用正则表达式匹配字符串的时候会产生非常多中间状态(一般的匹配引擎会保存这种中间状态),这样匹配失败的时候就能原路返回。占有型的表达式不保存这种中间状态,因此也就不会回头重来了。他能防止正则表达式的失控,同时也能提高运行的效率。
如:要匹配美国的社会安全号码, 这个号码的格式是999-99-9999或999999999(-可以不出现),正则表达式为:[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}。
边界匹配符
字符
|
说明
|
^
|
行的开头
|
$
|
行的结尾
|
\b
|
单词边界
|
\B
|
非单词边界
|
\A
|
输入的开头
|
\z
|
输入的结尾
|
\Z
|
除最后行终止符\n之外的输入结尾
|
\G
|
上个匹配的结尾
|
说明:“^”如果用在[]括号内,表示“否”,即该字符除外。但用在[]括号外如“^X”则表示以行X开头。
例如:
\B 匹配非单词边界,"er\B" 能匹配 "verb" 中的 "er",但不能匹配 "never" 中的 "er"。
"\bev" 能匹配 "every" 中的 "ev",但不能匹配 "never" 中的 "ev"。
集合操作
字符
|
说明
|
XY
|
X的匹配后面跟着Y的匹配
|
X|Y
|
匹配X或Y。
|
如:java|hello 将匹配包含java或hello的字符串。
如:tool:(java|ruby|c),可以匹配tool:java,或tool:ruby,或tool:c,注意不能使用[],因为[]里面只能匹配单个字符。
如:(b│cd)ef 匹配包含 "bef" 或者 "cdef"的字符串.
如:"(a│b)*c": 匹配包含0个或多个a或b,后面跟一个c的字符串。
lxm整理,只为知识共享之用,所有内容均来自网络,内容归所有者。
2009.04.16
分享到:
- 2008-08-17 17:57
- 浏览 1339
- 评论(0)
- 论坛回复 / 浏览 (0 / 1673)
- 查看更多
相关推荐
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...
为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...
Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...
Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...
本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~
### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...
### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...
Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...
Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...
Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....
Java正则表达式详解 Java正则表达式是Java语言中的一种模式匹配技术,用于匹配、查找、替换和判断字符串。它是一种强大的工具,能够帮助开发者快速处理字符串相关的任务。 什么是正则表达式? 正则表达式是一种...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...
Java正则表达式是编程语言Java中用于处理文本的强大工具,它源于早期的神经网络理论和数学家Stephen Kleene的工作,后来在Unix系统中得到广泛应用。在Java中,正则表达式提供了简洁的方法来匹配、查找、替换和提取...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...