
var reg = /<img[^>]id[=\"\'\s]+([^\"\'])[\"\'][^>]>/gi;
var html = documentbodyinnerHTML;
while(regexec(html)){
consolelog(RegExp$1);
}
/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048jpg转
/TestDemo/Tpl/default/File/Uploads/2010_9_6/1283591048jpg
根据你题目里面举例的这种对比的需求,转换条件认为是
“/Public/Files/全日期/数字jpg”形式的转换成
“/File/Uploads/紧缩日期/数字jpg”形式的。如果实际你的需求有所不同,可以根据这个略微对正则做修改。代码替换部分如下:
$str1 = "<p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_09_04/1283591048jpg\" width=\"32\" border=\"0\" />来留言看看这的风景好吗 <img alt=\"\" src=\"/TestDemo/Public/kindeditor/plugins/emoticons/13gif\" border=\"0\" /></p><img height=\"32\" alt=\"\" src=\"/TestDemo/Tpl/default/Public/Files/2010_12_01/88668866jpg\" width=\"32\" border=\"0\" />";
//这里多举一个例子试试
$str2 = preg_replace("/(src=\"[^\"])\/Public\/Files(\/\d_)[0](\d_)[0](\d\/\d+[](:jpg|gif|bmp)\")/","$1/File/Uploads$2$3$4$5",$str1);
>
//规则有不同的话你可以这里对比修改下正则参数。good luck~
//----------------------------------------
既然需求少了那么多,就可以
$str2 = preg_replace("/(src=\"[^\"])\/Public\/Files(\/\d_\d_\d\/\d+[](:jpg|gif|bmp)\")/","$1/File/Uploads$2",$str1);
行了,如果对的格式限制不严格(严格点的就需要在尾巴那里罗列出来),可以再简化成
$str2 = preg_replace("/(src=\"[^\"])\/Public\/Files(\/\d_\d_\d\/\d+[][a-zA-Z]+\")/","$1/File/Uploads$2",$str1);
img-id: new regex("(<=<img id=\")(=\")")input-id: new regex("(<=<input id=\")(=\")")input-name: new regex("(<=<inputname=\")(=\")")
imgsrc="([C-Zc-z]:/\[A-Za-z0-9]+)"
group(1)就是你要提取的,我不知道你用的什么语言,如果用php需要在这个正则两头加上/ /
还需要把 / 给转义了,既,把 / 替换成 \/
用php给你运行了一个
$txt='[img=442,296]地址1[/img][img=300,188]地址2[/img]
[img=120,206]地址3[/img]';
$re='/\[img\=(\d+,\d+)\](\S+)\[\/img\]/';//这里修改下,加上一个防止以单行文本导致的定界符不准问题
$arr=[];
preg_match_all($re,$txt,$arr);
var_dump($arr);
运行结果如下
php testphparray(3) {
[0]=>
array(3) {
[0]=>
string(32) "[img=442,296]地址1[/img]"
[1]=>
string(32) "[img=300,188]地址2[/img]"
[2]=>
string(32) "[img=120,206]地址3[/img]"
}
[1]=>
array(3) {
[0]=>
string(7) "442,296"
[1]=>
string(7) "300,188"
[2]=>
string(7) "120,206"
}
[2]=>
array(3) {
[0]=>
string(13) "地址1"
[1]=>
string(13) "地址2"
[2]=>
string(13) "地址3"
}
}
//增加一个矩阵转换
$txt = '[img=442,296]地址1[/img][img=300,188]地址2[/img][img=120,206]地址3[/img][img=120,206]>
以上就是关于需求:依次通过正则表达式获取Html中的img标签的id属性,根据id在Map集合中获取Url,然后替换img标签的src全部的内容,包括:需求:依次通过正则表达式获取Html中的img标签的id属性,根据id在Map集合中获取Url,然后替换img标签的src、正则匹配图片标签 <img src='' >、正则表达式获取<img>以及<input>标签中的ID 和Name,有引号以及没有引号的都能够获取。提供给C#语言利用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)