1示例1-区间匹配比如匹配[1,2]
正则表达式为:^[(\\[]\\d+,\\d+[)\\]]$
注明:颜色便于拆分理解
2示例2-正整数匹配
正则表达式为:^[1-9][0-9]*$
3示例3-整数匹配
正则表达式为:^-?[1-9][0-9]*$|0 (负整数、正整数、0)
4 示例4- 根据正则表达式截取字符串
输入:{start : [{\"version1\": 4,\"addr1\":\"192.160.1.11\"}] - [{\"version2\": 5,\"addr2\":\"192.160.1.12\"}]end}
输出:
{"version1":4,"addr1": "192.160.1.11"}
{"version2":5,"addr2": "192.160.1.12"}
java程序实现:
String s = "{start : [{\"version1\":4,\"addr1\": \"192.160.1.11\"}] - [{\"version2\":5,\"addr2\": \"192.160.1.12\"}]end}";
String regex = ".?+\\[(.+?)\\].+?";
Pattern pattern =Pattern.compile(regex);
Matcher matcher =pattern.matcher(s);
while(matcher.find()){
System.out.println(matcher.group(1));
}
5 正则表达式分组
\w(\d\d)(\w+)
这个正则表达式有三个组:
整个\w(\d\d)(\w+) 是第0组 group(0)
(\d\d)是第1组 group(1)
(\w+)是第2组 group(2)
我们看看和正则表达式匹配的一个字符串x99SuperJava,
group(0)是匹配整个表达式的字符串的那部分x99SuperJava
group(1)是第1组(\d\d)匹配的部分:99
group(2)是第二组(\w+)匹配的那部分SuperJava
6 正则表达式基础知识
1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
2.用途:
- 字符串匹配(字符匹配)
- 字符串查找
- 字符串替换
- 字符串分割
3.java中处理正则表达式的类:
- java.lang.String
- java.util.regex.Pattern:模式类:字符串要被匹配的这么一个模式,该模式本身已经被编译过,使用的话效率要高很多。
- java.util.regex.Matcher:匹配类:这个模式匹配某个字符串所产生的结果,这个结果可能会有很多个。
4:正则表达式
初步认识
. 任何字符
a? a一次或一次也没有
a* a零次或多次
a+ a一次或多次
a{n}? a恰好 n 次
a{n,}? a至少n次
a{n,m}? a至少n次,但是不超过m次
[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&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)
范围
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
\B 非单词边界
\A 输入的开头
\G 上一个匹配的结尾
\Z 输入的结尾,仅用于最后的结束符(如果有的话)
\z 输入的结尾
方法解析
matches():匹配整个字符串
find():匹配子字符串
lookingAt():永远从整个字符串的开头开始匹配
7 参考资料:
http://www.java3z.com/cwbwebhome/article/article8/81313.html?id=3138
http://www.cnblogs.com/elleniou/archive/2012/07/31/2617312.html
3258

被折叠的 条评论
为什么被折叠?



