需求:依次通过正则表达式获取Html中的img标签的id属性,根据id在Map集合中获取Url,然后替换img标签的src

需求:依次通过正则表达式获取Html中的img标签的id属性,根据id在Map集合中获取Url,然后替换img标签的src,第1张

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 testphp

array(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#语言利用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9319110.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存