由于使用FckEditor生成的图片标签是不带URL的, 所以需求是把服务器URL加入src属性.
以前从没用过正则,但现在不用不行啦,于是硬着头皮研究一串串乱码一样的东东.
经过研究(多半是Google), 终于找到了个经测试无误的正则. 现把代码贴出来, 资源共享~~
这么一小段代码, 搞了一天呢, 把我累坏了...
以前从没用过正则,但现在不用不行啦,于是硬着头皮研究一串串乱码一样的东东.
经过研究(多半是Google), 终于找到了个经测试无误的正则. 现把代码贴出来, 资源共享~~
public
String imgAddUrl(String content)
...
{
Pattern p = Pattern.compile("<img.*?/s+src=["']?([^"']*)["'/s]+.*?>"); //正则表达式
StringBuffer result=new StringBuffer(content); //想要方便的操作字符,必须使用StringBuffer
Matcher matcher = p.matcher(result);
int matchPointer = 0;
while (matcher.find(matchPointer)) ...{
result.insert(matcher.start(1), "http://"+addr); //addr为定义好的变量,内容为服务器IP地址或URL.
matchPointer = matcher.end();
matchPointer+=addr.length();
}
return result.toString();
}
Pattern p = Pattern.compile("<img.*?/s+src=["']?([^"']*)["'/s]+.*?>"); //正则表达式
StringBuffer result=new StringBuffer(content); //想要方便的操作字符,必须使用StringBuffer
Matcher matcher = p.matcher(result);
int matchPointer = 0;
while (matcher.find(matchPointer)) ...{
result.insert(matcher.start(1), "http://"+addr); //addr为定义好的变量,内容为服务器IP地址或URL.
matchPointer = matcher.end();
matchPointer+=addr.length();
}
return result.toString();
}