如何用正则表达式来删除字符串里面的一个<input>元素??急!!!
字符串如下,想删除“ <INPUT TYPE=BUTTON VALUE= '预订 ' onclick=javascript:onBooking( 'eLong ', '40101001 ', '0016 ', '0 '); CLASS=eButton> ”,我这里有个表达式
$s =~s/ <input[^> ]*\/?> //img;
结果是没有删除,找不出原因,会不会是里面有\r\n的缘故?
我在之前用这个表达式删除 $s=~/\r?\n//img;也还是不行
高手指点一下
<TD CLASS=PRICEROW ALIGN=CENTER style= 'width:6%; ' NOWRAP> <FONT SIZE=-2 CLASS=smallPrice> 580 </FONT> </TD> <TD CLASS=PRICEROW ALIGN=CENTER style= 'width:10%; ' > <INPUT TYPE=BUTTON VALUE= '预订 ' onclick=javascript:onBooking( 'eLong ', '40101001 ', '0016 ', '0 '); CLASS=eButton> </TD> <tr> <td CLASS=PRICEROW ROWSPAN=1 > <FONT SIZE=-2 CLASS=smallPrice> 高级标间 </FONT>
[解决办法]
$s =~s/ <input[^> ]*> //img;
[解决办法]
感觉你的写法也是可以的。
最好给出一个完整的Perl脚本说明你的问题,把测试用例也写在里面。
[解决办法]
#是呀,我测试也没问题呀.
#!/usr/bin/perl -w
$str= " <TD CLASS=PRICEROW ALIGN=CENTER style= 'width:6%; ' NOWRAP> <FONT SIZE=-2 CLASS=smallPrice> 580 </FONT> </TD> <TD CLASS=PRICEROW ALIGN=CENTER style= 'width:10%; ' > <INPUT TYPE=BUTTON VALUE= '预订 ' onclick=javascript:onBooking( 'eLong ', '40101001 ', '0016 ', '0 '); CLASS=eButton> </TD> <tr> <td CLASS=PRICEROW ROWSPAN=1 > <FONT SIZE=-2 CLASS=smallPrice> 高级标间 </FONT> ";
if ($str=~/ <input[^> ]*\/?> /im)
{
print "$& ";
}
#结果
> <INPUT TYPE=BUTTON VALUE= '预订 ' onclick=javascript:onBooking( 'eLong ', '40101001 ', '0016 ', '0 '); CLASS=eButton>