求助 java正则表达式将括号里的内容提取出来
如下面这句:<ahref="#"onClick="returnopen_new_window('/patroninfo~S0*chx/1069163/modpinfo')...
如下面这句:<a href="#" onClick="return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )">
如何将括号里的内容(/patroninfo~S0*chx/1069163/modpinfo)提取出来呢,不要里面的单引号。 展开
如何将括号里的内容(/patroninfo~S0*chx/1069163/modpinfo)提取出来呢,不要里面的单引号。 展开
2个回答
展开全部
1.就用LS的例子来改进吧,LS的例子用正则匹配的捕获型,也就是说除了捕获了/patroninfo~S0*chx/1069163/modpinfo,还捕获了带单引号的 '/patroninfo~S0*chx/1069163/modpinfo‘ (输出 System.out.println(mat.group(0) 就是);
这样无论在效率还是安全性上都有欠缺。
2 Pattern.compile("\\'(.*?)\\'")也可以改为Pattern pat = Pattern.compile("\'(.*?)\'"),减少代码冗余和理解复杂度。
捕获用法:
public class Test {
public static void main(String[] args) {
String str = "<a href=\"#\" onClick=\"return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )\">";
Pattern pat = Pattern.compile("\'(.*?)\'");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(1));
}
}
}
非捕获方法:
public class Test {
public static void main(String[] args) {
String str = "<a href=\"#\" onClick=\"return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )\">";
Pattern pat = Pattern.compile("(?<=\').*(?=\')");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(0));
}
}
}
这样无论在效率还是安全性上都有欠缺。
2 Pattern.compile("\\'(.*?)\\'")也可以改为Pattern pat = Pattern.compile("\'(.*?)\'"),减少代码冗余和理解复杂度。
捕获用法:
public class Test {
public static void main(String[] args) {
String str = "<a href=\"#\" onClick=\"return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )\">";
Pattern pat = Pattern.compile("\'(.*?)\'");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(1));
}
}
}
非捕获方法:
public class Test {
public static void main(String[] args) {
String str = "<a href=\"#\" onClick=\"return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )\">";
Pattern pat = Pattern.compile("(?<=\').*(?=\')");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(0));
}
}
}
展开全部
String str = "<a href=\"#\" onClick=\"return open_new_window( '/patroninfo~S0*chx/1069163/modpinfo' )\">";
Pattern pat = Pattern.compile("\\'(.*?)\\'");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(1));
}
Pattern pat = Pattern.compile("\\'(.*?)\\'");
Matcher mat = pat.matcher(str);
if (mat.find()) {
System.out.println(mat.group(1));
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询