牛骨文教育服务平台(让学习变的简单)
博文笔记

java正则表达式匹配小括号内的内容

创建时间:2016-07-15 投稿人: 浏览次数:11841

查看原文:http://www.ibloger.net/article/37.html

经常用到正则匹配小括号内容,在此摘录下来

String content = "src: local("Open Sans Light"), local("OpenSans-Light"), url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2) format("woff2")";
// 从内容上截取路径数组
Pattern pattern = Pattern.compile("(?<=\()[^\)]+");  
Matcher matcher = pattern.matcher(content);
while(matcher.find()){
   System.out.println(matcher.group());
}

输出

"Open Sans Light"
"OpenSans-Light"
http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2
"woff2"

还有一种情况是,我们只匹配url里面的内容,比如要匹配的字符串是

String content = "local("OpenSans-Light"),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2) format("woff2");unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F;}@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2) format("woff2");unicode-range:U+1F00-1FFF;}@font-face{font-family:"Open Sans";font-style:normal;font-weight:300;src:local("Open Sans Light"),local("OpenSans-Light"),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2) format("woff2");";

然后将正则规则修改为

Pattern pattern = Pattern.compile("(?<=url\()[^\)]+"); 

这样就能匹配如下内容了

http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTa-j2U0lmluP9RWlSytm3ho.woff2
http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZX5f-9o1vgP2EXwfjgl7AY.woff2
http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRWV49_lSm1NYrwo-zkhivY.woff2
http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTaaRobkAwv3vxw3jMhVENGA.woff2

正则中使用了零宽度断言

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。