2010-08-18 44 views
0

我已经显示了文件已被转换为XML从Excel工作表中以下行:使用VB.NET正则表达式来删除Excel XML转换

<Worksheet ss:Name="Sheet1"> 
    <Names> 
    <NamedRange ss:Name="Print_Area" ss:RefersTo="=Sheet1!R30C1:R8642C15"/> 
    </Names> 
    <Table ss:ExpandedColumnCount="14" ss:ExpandedRowCount="8655" x:FullColumns="1" 
    x:FullRows="1" ss:StyleID="s16"> 
    <Column ss:Index="2" ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="41.25"/> 
    <Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="36"/> 
    <Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="35.25"/> 
    <Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="38.25" ss:Span="1"/> 
    <Column ss:Index="8" ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="31.5"/> 
    <Column ss:Index="11" ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="30"/> 
    <Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="33.75"/> 
    <Column ss:StyleID="s16" ss:AutoFitWidth="0" ss:Width="28.5"/> 
    <Row ss:StyleID="s18"> 
    <Cell ss:StyleID="s17"><Data ss:Type="String">UNITED STATES</Data></Cell> 
    <Cell ss:StyleID="s17"/> 
    <Cell ss:StyleID="s17"/> 
    <Cell ss:StyleID="s17"/> 
    <Cell ss:StyleID="s17"/> 
    <Cell ss:StyleID="s17"/> 
    <Cell ss:StyleID="s17"/> 
    </Row> 

我试图,只除去<Column .. />线。我“认为”我在VB.NET中对正则表达式有很好的处理,但我似乎无法匹配这些行。我曾尝试以下匹配字符串:

'Using (RegexOptions.Multiline) 
Private Const Column_MatchExpression As String = "^[\s]*<Column[\s\S]+$" 
Private Const Column_MatchExpression As String = " <Column[\s\S]+$" 
Private Const Column_MatchExpression As String = "^ <Column[\s\S]+$" 
Private Const Column_MatchExpression As String = "^[\s]+<Column[\s\w\W]+$" 

对此问题的任何想法,将不胜感激。

+0

与加载文件到内存中的xmlDoc中,删除列节点,并重新保存文件不可能? – 2010-08-18 14:12:51

回答

0

什么

"^\s*<Column.*/>\s*$" 

+0

这个窍门,谢谢你的建议! – knslyr 2010-08-18 14:40:54

0
\<Column[^>]*\> 

应工作

+0

试过这个,很不幸没有工作。 – knslyr 2010-08-18 14:40:32

+0

行..对我很好,很高兴你有你的答案。查看http://www.nregex.com/nregex/default.aspx是一个快速简单的(免费)在线工具,用于正则表达式测试 – 2010-08-19 13:56:31