求一个python 正则表达式

castlooo 2009-06-11 05:00:06
aa ="<IMG src=\"http://www.baidu.com/z.gif\"> A<IMG src=\"http://www.baidu.com/o.gif\">B<IMG src=\"http://www.baidu.com/hsd.gif\"> "
将aa 字符串 替换为

aa= ",A,B。"

即 将 <IMG src=\"http://www.baidu.com/o.gif\"> 替换为 中文 逗号 ,
最后 一个 <IMG src=\"http://www.baidu.com/hsd.gif\"> (不一定为hsd.gif, 反正就是最后一个IMG标签) 替换为 中文句号 。

图片的名称 随机的,位数随机,名称随机。

...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kiuyongfa218 2009-06-24
  • 打赏
  • 举报
回复
你这也太费事了,那一串字符串基本都被你替换完了,那还用什么正则表达式呀?直接把你要用的字符串搜索出来不就行了。
tnttools 2009-06-11
  • 打赏
  • 举报
回复


如果是商用程序,最好是HTML Parser

单纯用正则式实现,可以逆向思维:
先将最后一个替换成“。”,再将其中所有的替换成“,”

其中要注意的问题有:
(1)我只是替换成了半角的,.,你应该按照需求替换成对应字符集的句号和逗号
(2)HTML语言标准相当宽松:属性之间是有任意空格的,属性值可以不打引号,<IMG />和<IMG></IMG>等价,<IMG>...</IMG>中可以有任意东西。我觉得正则式无法表现这么复杂的情况,这就是我建议用HTML Parser的原因。
比如:
名字中就有一个标记的左半边,这是合法的HTML语言
<IMG name="<IMG" src="http://www.baidu.com/23.gif" />


# Proof of Concept in PERL5

$aa =
" <IMG src=\"http://www.baidu.com/z.gif\"> A <IMG src=\"http://www.baidu.com/o.gif\">B <IMG

src=\"http://www.baidu.com/hsd.gif\"> ";
print(replace($aa));

sub replace{
$str = $_[0];
# last is first
$str =~ s/^(.*)<IMG.*?\>(.*?)$/$1.$2/;
$str =~ s/<IMG.*?\>/,/g;
return $str;
}

duzif 2009-06-11
  • 打赏
  • 举报
回复
先用正则都替换成逗号:reg=<IMG src=\\"http://www.baidu.com/.+?\.gif\\">

再替换最后一个逗号为句号:reg=,$

只能想到这样了。。呵呵
Semigod 2009-06-11
  • 打赏
  • 举报
回复
利用前向和后向匹配
用下面这个来找需要换成,的
(?<=<IMG src=\"http://www.baidu.com/.*?\.gif\">)(A|B)
其它的换成句号。

或者,你也可以先处理要换成。的。
(?<!(A|B))(<IMG src=\"http://www.baidu.com/.*?\.gif\">)
其它的换成逗号。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

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