java正则表达式
2016-10-27 10:51
316 查看
正则表达式的匹配字符
1.普通字符
字母、数字、汉字、标点符号
2.非打印字符
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\v 垂直制表符
\s 任何空白字符 包括 \f\n\r\t\v
\S 任何非空政府 不包括\f\n\r\t\v
3.特殊字符
^
$
*
?
+
.
()
[]
{}
\d
\w
\D
\W
\
|
4.次数限定符
* 0次或多次
+ 至少1次
? 0或1次
{n} 指定n次
{n,} 至少n次
{n,m} 匹配n-m次
5.定位符
^ 开始
$ 结束
\b 单词边界
\B 非单词边界
6.选择与分组
|
7.向后引用
如:
Pattern pp5=Pattern.compile("(\\d\\d)\\1");
s1="1212";
Matcher m5=pp5.matcher(s1);
p(m5.matches());//返回true
8.操作符的优先级
\
(),(?:)(?=),[]
*,+,?,{n},{n,},{n,m}
^,$,\anymetacharacter
|
二、正则表达式的匹配规则
1.基本模式匹配规则
2.字符簇匹配规则
3.重复出现匹配规则
4.匹配次数中的贪婪和非贪婪
5.匹配时反响引用规则
6.预搜索和懒搜索规则
三 、使用正则表达式
1.String类的匹配功能
matches()
splits()
replaceAll()
replaceFirst()
2.正则表达式库
Pattern和Matcher
3.正则表达式库的4个功能
find()
group()
split()
replaceAll()
System.out.println("-----------?:测试--------------");
Pattern per1 = Pattern.compile("k(?:aa)");
Matcher mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
//匹配aab
}
System.out.println("-----------?=测试--------------");
per1 = Pattern.compile("k(?=aa)");
mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向后看0宽度匹配nAbcdef
}
System.out.println("-----------?!测试--------------");
per1 = Pattern.compile("k(?!aa)");
mcer1 = per1.matcher("kkaabaa");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向后看0宽度匹配k
}
System.out.println("-----------?<=测试--------------");
per1 = Pattern.compile("(?<=aa)m");
mcer1 = per1.matcher("aamkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向前看0宽度匹配
//m
}
System.out.println("-----------?<!测试--------------");
per1 = Pattern.compile("(?<!aa)k");
mcer1 = per1.matcher("aakkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向前看0宽度匹配
//k
}
System.out.println("-----------?i和?-i测试--------------");
per1 = Pattern.compile(".(?i)abc(?-i)def");
mcer1 = per1.matcher("nnnnnnnnnnAbcdef");
while (mcer1.find()) {
System.out.println(mcer1.group());
//匹配nAbcdef
}
per1 = Pattern.compile("(?-i)abc(?i)def");
mcer1 = per1.matcher("AbcDef");
while (mcer1.find()) {
System.out.println(mcer1.group());
//不匹配
}
System.out.println("-----------贪婪和懒惰和固定测试--------------");
//Pattern p = Pattern.compile(".{3,10}[0-9]");//贪婪 0-10
//Pattern p = Pattern.compile(".{3,10}?[0-9]");//懒惰 0-5和0-10
Pattern p = Pattern.compile(".{3,10}+[0-9]");//固定 不匹配没有结果显示
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
while(m.find())
System.out.println(m.start() + "-" + m.end());
1.普通字符
字母、数字、汉字、标点符号
2.非打印字符
\f 换页符
\n 换行符
\r 回车符
\t 制表符
\v 垂直制表符
\s 任何空白字符 包括 \f\n\r\t\v
\S 任何非空政府 不包括\f\n\r\t\v
3.特殊字符
^
$
*
?
+
.
()
[]
{}
\d
\w
\D
\W
\
|
4.次数限定符
* 0次或多次
+ 至少1次
? 0或1次
{n} 指定n次
{n,} 至少n次
{n,m} 匹配n-m次
5.定位符
^ 开始
$ 结束
\b 单词边界
\B 非单词边界
6.选择与分组
|
7.向后引用
如:
Pattern pp5=Pattern.compile("(\\d\\d)\\1");
s1="1212";
Matcher m5=pp5.matcher(s1);
p(m5.matches());//返回true
8.操作符的优先级
\
(),(?:)(?=),[]
*,+,?,{n},{n,},{n,m}
^,$,\anymetacharacter
|
二、正则表达式的匹配规则
1.基本模式匹配规则
2.字符簇匹配规则
3.重复出现匹配规则
4.匹配次数中的贪婪和非贪婪
5.匹配时反响引用规则
6.预搜索和懒搜索规则
三 、使用正则表达式
1.String类的匹配功能
matches()
splits()
replaceAll()
replaceFirst()
2.正则表达式库
Pattern和Matcher
3.正则表达式库的4个功能
find()
group()
split()
replaceAll()
System.out.println("-----------?:测试--------------");
Pattern per1 = Pattern.compile("k(?:aa)");
Matcher mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
//匹配aab
}
System.out.println("-----------?=测试--------------");
per1 = Pattern.compile("k(?=aa)");
mcer1 = per1.matcher("kkaab");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向后看0宽度匹配nAbcdef
}
System.out.println("-----------?!测试--------------");
per1 = Pattern.compile("k(?!aa)");
mcer1 = per1.matcher("kkaabaa");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向后看0宽度匹配k
}
System.out.println("-----------?<=测试--------------");
per1 = Pattern.compile("(?<=aa)m");
mcer1 = per1.matcher("aamkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向前看0宽度匹配
//m
}
System.out.println("-----------?<!测试--------------");
per1 = Pattern.compile("(?<!aa)k");
mcer1 = per1.matcher("aakkb");
while (mcer1.find()) {
System.out.println(mcer1.group());
//向前看0宽度匹配
//k
}
System.out.println("-----------?i和?-i测试--------------");
per1 = Pattern.compile(".(?i)abc(?-i)def");
mcer1 = per1.matcher("nnnnnnnnnnAbcdef");
while (mcer1.find()) {
System.out.println(mcer1.group());
//匹配nAbcdef
}
per1 = Pattern.compile("(?-i)abc(?i)def");
mcer1 = per1.matcher("AbcDef");
while (mcer1.find()) {
System.out.println(mcer1.group());
//不匹配
}
System.out.println("-----------贪婪和懒惰和固定测试--------------");
//Pattern p = Pattern.compile(".{3,10}[0-9]");//贪婪 0-10
//Pattern p = Pattern.compile(".{3,10}?[0-9]");//懒惰 0-5和0-10
Pattern p = Pattern.compile(".{3,10}+[0-9]");//固定 不匹配没有结果显示
String s = "aaaa5bbbb6";
Matcher m = p.matcher(s);
while(m.find())
System.out.println(m.start() + "-" + m.end());
相关文章推荐
- Java正则表达式
- Java使用正则表达式将UBB的img表达方法转换成html样式
- java 正则表达式
- 常用JAVA正则表达式
- java 正则表达式
- JAVA 正则表达式
- Java regex 正则表达式
- Java常用类库——正则表达式
- 你应该知道的10个Java正则表达式
- JAVA与正则表达式
- java中使用正则表达式(2)
- java 正则表达式工具类
- Java正则表达式
- jakarta regexp (java struts正则表达式)
- java 正则表达式
- Java正则表达式
- java实用正则表达式工具类
- java url 正则表达式
- Java程序员:一刻钟精通正则表达式
- JAVA 正则表达式