<PDFPageNum>31</PDFPageNum>
<pageContent><![CDATA[然窃有忧者,则匪氛之起,不在满清末运,而在民国初年。何则?战后之兵,蛮野浮动,在伍时既大肆劫掠,退伍后仍将流为盗寇,则今日之兵,即他日之匪,其因一;愚民不识共和为何物,教育不克立收成效,责以国民义务,群警为苛法虐政,起而抗变,其因二;一度战乱,元气大丧,民间愁苦怨嗟,实为乱阶,其因三;左道之流18,造谣惑众,此次革命,引起此辈帝王思想,其因四。怅望前途,不寒而栗,黯黯中原,将沦为盗贼世界,吾民尚有噍类19耶!
  以上三端,百思恐不获免。凡百君子,其有以嘉谋嘉猷20而弭于未然者乎?曷有以解我忧?
  按:斯篇成于民国元年六月,迄今将及一纪,党争则日激日厉,省界亦愈划愈严。近宋案21发生,借款事起,南北几兴兵戎,生民险遭涂炭。人心诡诈,暗杀流行,国士元勋,人各恐怖,而九龙、龙华诸会匪,又复蠢蠢欲动,匪氛日益猖炽,环顾神州,危机万状。抚今思昔,斯文着笔时,犹是太平时也。呜呼!记者附识。
  署名:李钊
  《言治》月刊第1年第3期
  1913年6月1日]]></pageContent>
</page>
这是一个XML的文本格式,我想把CDATA里面所有的数字注释删掉请问怎么写正则呢?

解决方案 »

  1.   

    不要紧我有个提取软件能给替换掉的复位,现在只要吧把CDATA里的阿拉伯数字换到就成了
      

  2.   

    string s = @"<PDFPageNum>31</PDFPageNum>
    <pageContent><![CDATA[然窃有忧者,则匪氛之起,不在满清末运,而在民国初年。何则?战后之兵,蛮野浮动,在伍时既大肆劫掠,退伍后仍将流为盗寇,则今日之兵,即他日之匪,其因一;愚民不识共和为何物,教育不克立收成效,责以国民义务,群警为苛法虐政,起而抗变,其因二;一度战乱,元气大丧,民间愁苦怨嗟,实为乱阶,其因三;左道之流18,造谣惑众,此次革命,引起此辈帝王思想,其因四。怅望前途,不寒而栗,黯黯中原,将沦为盗贼世界,吾民尚有噍类19耶!
      以上三端,百思恐不获免。凡百君子,其有以嘉谋嘉猷20而弭于未然者乎?曷有以解我忧?
      按:斯篇成于民国元年六月,迄今将及一纪,党争则日激日厉,省界亦愈划愈严。近宋案21发生,借款事起,南北几兴兵戎,生民险遭涂炭。人心诡诈,暗杀流行,国士元勋,人各恐怖,而九龙、龙华诸会匪,又复蠢蠢欲动,匪氛日益猖炽,环顾神州,危机万状。抚今思昔,斯文着笔时,犹是太平时也。呜呼!记者附识。
      署名:李钊
      《言治》月刊第1年第3期
      1913年6月1日]]></pageContent>
    </page>";
    string r = Regex.Replace(s, @"(?s)(?<=<!\[CDATA\[.*?)\d+(?=.*?\]\]>)", "");
    Response.Write(Server.HtmlEncode(r));
      

  3.   

     string tempStr = File.ReadAllText(@"C:\Users\dell\Desktop\Test.txt",Encoding.GetEncoding("gb2312"));//读取文档
                tempStr = Regex.Replace(tempStr, @"(?<=<!\[CDATA\[[\s\S]*?)\d+(?=[\s\S]*\]\]>)", string.Empty);
      

  4.   

    <PDFPageNum>31</PDFPageNum>
    这里边的数字也没有了
      

  5.   

    <PDFPageNum>31</PDFPageNum>
    这里边的数字也没有了
      

  6.   

    有多个<pageNum>140</pageNum>
    <PDFPageNum>168</PDFPageNum>
    <pageNum>141</pageNum>
    <PDFPageNum>169</PDFPageNum>
    时第一个数字保留了下来其他都被删掉了
    如:
    有多个<pageNum>140</pageNum>
    <PDFPageNum>168</PDFPageNum>
    <pageNum></pageNum>
    <PDFPageNum></PDFPageNum>
    变成这样了