正则表达式与替换

JavaBS 2009-08-20 11:57:05
在一个文本中有如下代码
<a href="abc.do?id=1">
<a href="aaaa.do?id=12">
<a href="121.do?id=13">
<a href="4546.do?id=14">
<a href="a123.do?id=11">
......

如何这个文本中所有的链接换成
<a href="abc.do?id=1.html">
<a href="aaaa.do?id=12.html">
<a href="121.do?id=13.html">
<a href="4546.do?id=14.html">
<a href="a123.do?id=11.html">

....

也就是说把链接全部加个.html结尾
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyung 2009-08-20
  • 打赏
  • 举报
回复
str.replace(/(id=\d+)/mg, "$1.html");
closewbq 2009-08-20
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
String[] array ={
"<a href=\"ViewDmwsjxx-in.do?id=76&mcname=花田家\">",
"<a href=\"ViewDmwsjxx-in.do?id=14&mcname=町町美食餐厅\">",
"<a href=\"ViewDmwsjxx-in.do?id=89&mcname=野妹火锅\">",
"<a href=\"ViewDmwsjxx-in.do?id=75&mcname=巴山小馆\">"};
Pattern pattern = Pattern.compile("(?<=id=)(\\d+)");
for (String str: array) {
Matcher matcher = pattern.matcher(str);
if(matcher.find()){
System.out.println(matcher.replaceFirst(matcher.group(1)+".html"));
}
}
}
}

JavaBS 2009-08-20
  • 打赏
  • 举报
回复
解决了,多谢,不知楼上的高手能解释下吗
本人是一个菜鸟!
closewbq 2009-08-20
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String args[]) {
String[] array = { "<a href=\"abc.do?id=1\">",
"<a href=\"aaaa.do?id=12\">", "<a href=\"121.do?id=13\">",
"<a href=\"4546.do?id=14\">", "<a href=\"a123.do?id=11\">" };
Pattern pattern = Pattern.compile("(?<=id=)(\\d+)");
for (String str: array) {
Matcher matcher = pattern.matcher(str);
if(matcher.find()){
System.out.println(matcher.replaceFirst(matcher.group(1)+".html"));
}
}
}
}
JavaBS 2009-08-20
  • 打赏
  • 举报
回复
<li><a href="ViewDmwsjxx-in.do?id=76&mcname=花田家"><img src="1.gif"/></a></li> <li><a href="ViewDmwsjxx-in.do?id=14&mcname=町町美食餐厅"><img src="2.gif"/></a></li> <li><a href="ViewDmwsjxx-in.do?id=26&mcname=果之语"><img src="4.gif"/></a></li>

<li><a href="ViewDmwsjxx-in.do?id=89&mcname=野妹火锅"><img src="UserFiles/1.gif"/></a>
</li>
<li><a href="ViewDmwsjxx-in.do?id=75&mcname=巴山小馆"><img src="2.gif"/></a></li>

如果我想将这转呢
我是这样写的,但转不出来,麻烦帮下手看下

bufferString=bufferString.replaceAll("<a\\s+href\\s*=\\s*\"?(.*?)[\"|>]","$1.html");
转出来的结果是 <a href="">都没了 是哪里错了呀
  • 打赏
  • 举报
回复
String[] ss ={
"<a href=\"abc.do?id=1\">",
"<a href=\"aaaa.do?id=12\">",
"<a href=\"121.do?id=13\">",
"<a href=\"4546.do?id=14\">",
"<a href=\"a123.do?id=11\">"
};
Pattern pattern = Pattern.compile("(<a href=\"\\w+\\.do\\?id=\\d+){0}(\">)");

for(int i=0;i<ss.length;i++){
Matcher matcher = pattern.matcher(ss[i]);
ss[i]=matcher.replaceAll(".html\">");
System.out.println(ss[i]);
}
bigbug9002 2009-08-20
  • 打赏
  • 举报
回复
mport java.util.regex.*; 

public class test{
public static void main(String args[]) {
String str="<a href=\"abc.do?id=1\">\n"
+"<a href=\"aaaa.do?id=12\">\n"
+"<a href=\"121.do?id=13\">\n"
+"<a href=\"4546.do?id=14\">\n"
+"<a href=\"a123.do?id=11\">";

String regex="(?im)(?<=[\\?]id=)(\\d+)";

str=str.replaceAll(regex,"$1.html");
System.out.println(str);
}
}


F:\java>java test
<a href="abc.do?id=1.html">
<a href="aaaa.do?id=12.html">
<a href="121.do?id=13.html">
<a href="4546.do?id=14.html">
<a href="a123.do?id=11.html">

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧