Java 正则表达式

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]                       ab 或 c(简单类)

[^abc]                    任何字符,除了 ab 或 c(否定)

[a-zA-Z]                  a 到 z 或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]]               a 到 d 或 m 到 p[a-dm-p](并集)

[a-z&&[def]]            de 或 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值