首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

正则表达式高手来!请问

2012-06-21 
正则表达式高手来!!请教这是图片前面的文字imghttp://....com/img这是图片后面的文字,这是图片前面的

正则表达式高手来!!请教

这是图片前面的文字<img>http://....com</img>这是图片后面的文字,这是图片前面的文字<img>http://....com</img>这是图片后面的文字

我想达到的效果是:文字用文本显示,图片开始用一张默认的代替然后请求图片链接,请求成功后替换默认的。但是要按照顺序显示文字、图片,应该怎么做到呢??

求指点,谢谢!

[解决办法]
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312" />
<title></title>
<style>
</style>
</head>
<body>
<script>
var str = '这是图片前面的文字<img>http://www.baidu.com/img/baidu_jgylogo3.gif</img>这是图片后面的文字,这是图片前面的文字<img>http://www.baidu.com/img/baidu_jgylogo3.gif</img>这是图片后面的文字';
var r1 = /[^,]+/g;
var r2 = /<img>(.+?)<\/img>/;
var arr = str.match(r1);
for( var i = 0, len = arr.length; i < len; i++ ){
var tmp = arr[i].replace(r2, '<img src="$1">');
var div = document.createElement('div');
div.innerHTML = tmp;
document.body.appendChild(div);
}
</script>
</body>
</html>


[解决办法]
问题都木有看明白,这应该不是正则的问题

图片更新
<img id=xxx name=xxx src=默认图片 onclick=xxx>yyyy</img>
在onclick事件里修改src为新的图片就可以了

其他的按你现在处理保持不变
[解决办法]
有正则表达式问题的地方 都会出现 阿宝的身影 ,继续关注
[解决办法]
顶楼的需求跟5楼的说明不一致。

顶楼的需求相对简单,将<img>xxoo</img>这种片段,转换为一段带JS的HTML脚本即可,比如:
<img onload="loadImg(this, 'http://..../xxoo.jpg')" src="/img/default.jpg" />
然后写个loadImg的函数去负责异步下载图片好了。

至于用正则匹配出<img>xxoo</img>,这个难度貌似就更低了。
html = html.replaceAll("<img>([^<]+)</img>", "<img onload="loadImg(this, '$1')" src="/img/default.jpg" />");


至于5楼的需求,复杂度就比较高了。。。
[解决办法]

探讨
我的意思是怎么把前面的文字找出来,图片链接找出来,图片后面的文字找出来??

这是图片前面的文字<img>http://....com</img>这是图片后面的文字

[解决办法]
阿宝何方神圣啊?求拜师!!~
[解决办法]
主要是[]是正则表达式的特殊字符,所以需要进行转义,其它并没啥特殊的:

String s = "测试字符串";
String pat = "\\[img\\]([^\\[]*)\\[/img\\]";
Matcher m = Pattern.compile(pat).matcher(s);
while (m.find()) {
System.out.println(m.group(1));
}
[解决办法]
探讨
[img]http://www.baidu.com[/img] 怎么把中间的网址提取出来???正则

热点排行