如题,我现在的代码如下:
-----------------------------------------
Private Sub Command3_Click()
Dim cd1 As StringInet1.Protocol = icHTTP
cd1 = Inet1.OpenURL("http://www.chinadaily.com.cn")  Set regex = CreateObject("VBScript.RegExp")
  regex.IgnoreCase = True
  regex.Global = True
  regex.Pattern = "<p>(.*?)</p>" '先取得"<p>"和"</p>"之间的文字.取得这个以后,再来去掉尖括号<>中的所有内容
  Set Matches = regex.Execute(cd)
  For Each Match In Matches
      cd1 = cd1 & Match.SubMatches(0) & vbCrLf
  Next    cd1 = Replace(cd1, "</a>", "")regex.Pattern = "<.*?>" '然后设想把所有的尖括号<>中(包括尖括号自身)的内容全部删掉
cd1 = regex.Replace(cd1, "")Text1 = cd1
End Sub
--------------
测试结果表明还是有些尖括号和其中内容会留下来,比如下面的这些.也就是说regex.Pattern = "<.*?>"这一句没有把所有尖括号中的东西去掉! 为什么??  非常感谢!!
-----------------------
Peopleforum|workercn.cn|
Portals
 :

Sina|Sohu|Tom|NetEase|Tencent|Hexun|
Organizations
 :

FrenCham|CPAFFC|CPIFA|Gov.cn|eBeijing|AmCham|SwissCham BJ|The 16th Asian Games|
<!--
var vjAcc="860010-2007030100";
var wrUrl="http://c.wrating.com/";
vjTrack("");
--><!--
var vjClickAcc="860010-2007030100";
var wrUrl="http://click.wrating.com/";
initMouseClick();
-->

解决方案 »

  1.   

      regex.Pattern = "<(.*\n)*(.*)>"
      

  2.   

    那标签不在一行导致的。regex.Pattern = "<.*?>"换成
    regex.Pattern = "<[\s\S]*?>"这样就是支持多行模式了。
      

  3.   

    试了下,
    sysdzw的regex.Pattern = "<[\s\S]*?>"  再次惊人地 震撼地 精确地有效!of123的 regex.Pattern = "<(.*\n)*(.*)>"  好像会误删.我这里结果只剩下三段文字,其它全给删了.不知道是不是还有哪里没领会高侠的意思或没做对.表达式的含义我看不懂,结果上看是这样.感谢!我昨晚发的贴,这么快有回复,非常感谢!!