Java的正则获取括号里面的内容
其实严格来说是叫获取组里面的内容
先说核心,Matcher
的方法group()
可以取出括号里面的内容,0是取出所有匹配字符串,即:不会按照组这个说法来匹配,之后就可以依次取出我们用括号括起来的内容。
例子:
// 创建 Pattern 对象
Pattern r = Pattern.compile("xx[\s,\S]+?()ss")
// 现在创建 matcher 对象
Matcher m = r.matcher("你的字符串");
//获取括号里面的内容
m.group(1);
Java对字符串的正则
//JS数据爬取
//获取当前页面的核心列表
String s = page.getHtml().regex(JSConstants.kernelPattern).toString();
//获取时间、标题和链接
String pattern = JSConstants.supplementPattern;
// 创建 Pattern 对象
Pattern r = Pattern.compile(pattern);
// 现在创建 matcher 对象
Matcher m = r.matcher(s);
//找出匹配项中的全部链接
extracted(m);
//提出数据中的所有链接
private void extracted(Matcher m) {
while (m.find()) {
IndexPage indexPage = new IndexPage();
Date date = new Date();
String link = m.group(1);
String title = m.group(2);
String time = m.group(3);
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(time);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
indexPage.setTime(date);
indexPage.setTitle(title);
indexPage.setLink("你的网址" + link);
indexPageList.add(indexPage);
}
}
核心代码其实不多。
-
获取字符串
str
。 -
声明一个
Pattern
对象,调用其compile
静态方法,获取一个正常的统配符对象r。 -
通过
r
的matcher()
方法,给它我们的字符串str
,即r.matcher(str),获得一个matcher
对象m
-
最后,就可以通过matcher对象取出我们想要的数据,取出组的话,要使用
m
的方法group()
,0是取出所有匹配字符串,即不会按照组这个说法来匹配,之后就可以依次取出我们用括号括起来的内容。