正则表达式过滤指定位置的字符

来源:百度知道 编辑:UC知道 时间:2024/09/20 02:43:02
我想用正则表达式过滤
<TD width=69 rowSpan=2>
<P class=MsoNormal>日期 </P> </TD>
中的P标签(只是TD标签内的P标签,其他的P不过滤)
如何写表达式?

编程环境是:vb
我想用正则表达式过滤以下字符串
<P class=MsoNormal align=center> <B>表3 调节参数的变化 </B> </P>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=1 borderColorLight=#000000 border=1>
<TR>
<TD width=87 rowSpan=2>
<P class=MsoNormal align=center>参数内容 </P> </TD>
<TD width=39 rowSpan=2>
<P class=MsoNormal align=center>单位 </P> </TD>
</TR>
</TABLE>
我想过滤掉TD标签内的P标签,不在TD标签内的P不过滤 ,过滤结果为以下:
<P class=MsoNormal align=center> <B>表3 调节参数的变化 </B> </P>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=1 borderColorLight=#000000 border=1>
<TR>
<TD width=87 rowSpan=2>
参数内容 <

好了,又又一次回复,不好意思,我是新手,慢慢一点一点深入

(<TD[^>]*>)[\r\n\s]*<P[^>]*>([^>]*)</P>\s?(</TD>)

这正则表达式完全搞定了,用 $1$2$3 替换

re.Pattern = "(<TD[^>]*>)[\r\n\s]*<P[^>]*>([^>]*)</P>\s?(</TD>)"

Data = re.Replace(Data,"$1$2$3")

请先备份,以防意外。

=================================================================

又一次回复,嘿嘿,写出一个,但要有条件:要删的P标签要和</TD>同一行,并且在前面。(只能想到这个笨方法了,靠</TD>来辨别是不是在TD里)

</?P[^>]*>(?=.*</TD>)

请先备份,否则有意外,别怪我。

========================================================

不知怎的 不支持(?<=exp),有点难缠。恕小生学艺未精。

期待高手,关注中……

========================================================

处理这些固定的字符串用Replace就好了

a = "<TD width=69 rowSpan=2> <P class=MsoNormal>日期 </P> </TD> "

a = Replace(Replace(a,