java 正则表达式
来源:互联网 发布:王者荣耀淘宝cdk抽奖 编辑:程序博客网 时间:2024/06/07 02:23
正则表达式 (regular expression) 用于指定字符串的模式,你可以在任何需要定位匹配某种特定模式的字符串的情况下使用正则表达式。
1. 字符类
括在括号中的字符集,例如 [Jj], [0-9] [A-Za-z], [^0-9]
"-"表示一个范围, "^"表示补集
【C1C2...】 任何由C1,C2...表示的字符,其中Ci可以是多个字符,字符范围(C1-C2)或字符类
【^...】 字符类的补集
【... && ...】 两个字符集的交集
2. 如果字符类中要包含"-",那"-"必须在第一项或者最后一项;如果要包含"[",则 "["必须在第一项; 如果要包含 "^" , 则 "^" 必须不在开始位置,可以在其它任何位置。
字符 "[" , "\" ,需要使用转义符配合使用。
3. 预定义字符类
4. 使用\作为转义字符,例如, \.匹配句号 而\\匹配反斜线
5. ^ 和 $ 分别匹配一行的开头和结尾
6. 如果X和Y是正则表达式,那XY表示:任何X的匹配后面跟随Y的·匹配
X|Y表示: 任何X或者Y的匹配
7. 量词运用到表达式X:
X+ 一个或者多个
X* 0个或者多个
X? 0个或者1个
正则表达式测试方法。
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(jinput)
if(matcher.matches())
{
...
}
** input可以是实现了CharSequene接口的类的对象,例如String, StringBuilder和CharBuffer
compile模式的时候,可以加入标志,例如
Pattern pattern = Pattern.compile(patternString,Pattern.CASE_INSENSITIVE + Pattern.UNICODE_CASE);
一共支持6类标志
CASE_INSENSITIVE 匹配时忽略字母大小写
UNICODE_CASE 当与CASE_SENSITIVE组合时,用Unicode字母的大小写来匹配
MULTILINE ^和$匹配行的开头和结尾,而不是整个输入的开头和结尾
UNIX_LINES 在多行模式中匹配^和$时,只有'\n'被识别成行终止符
DOTALL 当使用这个标志时, '.' 符号匹配所有字符,包括行终止符
CANON_EQ 考虑Unicode字符规范的等价性
正则表达式的一些常用API
java.util.regex.Pattern
static Pattern compile(String expression)
static Pattern compile(String expression, int flag)
把正则表达式字符串编译到一个用于快速处理匹配的模式对象中。
参数 expression = 正则表达式
Matcher matcher(CharSequence input)
返回一个matcher对象,可以用它在输入中定位模式的匹配
String[] split(CharSequence input)
String[] split(CharSequence input, int limit)
将输入分割成标记,其中模式指定了分隔符的形式。返回标记数组,分隔符并非标记的一部分
参数input 要分割成标记的字符串
limit 所产生的字符串的最大数量。
java.util.regex.Matcher
boolean matches()
如果输入匹配模式,则返回true
boolean lookingAt()
如果输入的开头匹配模式,则返回true
boolean find()
boolean find(int start)
尝试查找下一个匹配,如果找到了另一个匹配,则返回true
参数 start 开始查找的索引位置
int start()
int end()
返回当前匹配的开始索引和结尾之后的索引位置
String group()
返回当前的匹配
int groupCount()
返回输入模式中的群组数量
int start(int groupIndex)
int end(int endIndex)
返回当前匹配中给定群组的开始和结尾之后的位置
参数 groupIndex 群组索引(从1开始),或者表示整个匹配的0
String group(int groupIndex)
返回匹配给定群组的字符串
参数 groupIndex 群组索引(从1开始),或者表示整个匹配的0
String replaceAll(String replacement)
String replaceFirst(String replacement)
返回从匹配器输入获得的通过将所有匹配或第一个匹配用替代字符串替代之后的字符串
参数 replacement 替代字符串
static String quoteReplacement(String str)
引用str中的所有 \和 $
Matcher reset()
Matcher reset(CharSequence input)
复位匹配器的状态,第二个方法将使匹配起作用于另一个不同的输入。这2个方法都返回this.
- Java 正则表达式正则
- 【正则表达式】Java正则表达式
- 正则表达式 JAVA正则表达式
- 【Java】【正则表达式】正则表达式
- Java 正则表达式详解_正则表达式
- java正则表达式!正则表达式踩坑!!!
- 正则表达式工具类,正则表达式封装,Java正则表达式
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- java和正则表达式
- java正则表达式详解!
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- Java正则表达式详解
- 显示修改数据(tables CDHDR and CDPOS)
- node搭建微信平台(一)--调环境
- 关于连接参数-Ttext
- 2016.12.05回顾 logistic自变量是分类变量
- python 多线程(续)
- java 正则表达式
- Eclipse中的引用项目报Could not find *.apk!解决办法
- ORACLE CONNECT_BY_ROOT
- rot13 编码
- OpenCV学习笔记(一)对数变换
- Thinking in React
- 【BZOJ 1030】[JSOI2007]文本生成器 Ac自动机+fail树上dp
- Eclipse快速获取类的限定名称
- 第十三章:Sequental data exercise 1-11