求助 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)提取出来呢,不要里面的单引号。
展开
 我来答
cs6641468
2011-11-03 · TA获得超过5713个赞
知道大有可为答主
回答量:863
采纳率:100%
帮助的人:991万
展开全部
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));
}
}
}
kaixinwoo
2011-11-03 · 超过50用户采纳过TA的回答
知道答主
回答量:164
采纳率:0%
帮助的人:141万
展开全部
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));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式