簡體   English   中英

正則表達式:如何在vb.net或C#.net上使用正則表達式在Xml標記之間獲取文本和一些特殊字符

[英]Regex:How to take text & some special characters between the Xml tags using Regex on vb.net or C#.net

我想要xml標記之間的文本和一些特殊字符。.我的輸入文件包含:

<line>public static void main(String[] args)</line>
<line>{</line>
<line>   <>double <inline>result</inline> = Math.pow(2, 3);</line>
<line>   . . .</line>
<line>    </line> 'white space also comes
<line>}</line>

現在我希望正則表達式在標簽<line>,<inline>..之間采用文本和特殊字符<line>,<inline>..

由於將<>放在“ double”之前,將其解析為XML將失敗。 我也不會使用正則表達式,但是簡單的String.Replace會更好,或者StringBuilder會更好。 這對我來說很好:

string test = @"<line>public static void main(String[] args)</line> 
    <line>{</line> 
    <line>   <>double <inline>result</inline> = Math.pow(2, 3);</line> 
    <line>   . . .</line> 
    <line>    </line> 'white space also comes 
    <line>}</line>
    ";

StringBuilder str = new StringBuilder(test);
new List<String>() { "<line>", "<inline>", "</line>", "</inline>" }.ForEach(token => str.Replace(token, String.Empty));
Console.WriteLine(str.ToString()); 

更新:

與此它也應在.net 2.0中工作:

StringBuilder str = new StringBuilder(test);
List<String> tokens = new List<String>();
tokens.Add("<line>");
tokens.Add("<inline>");
tokens.Add("</line>");
tokens.Add("</inline>");

foreach(String token in tokens)
{
    str.Replace(token, String.Empty);
}

您可以使用LINQ to XML來解析XML:

var doc = XDocument.Parse(@"<lines>
<line>public static void main(String[] args)</line>
<line>{</line>
<line>   &lt;&gt;double <inline>result</inline> = Math.pow(2, 3);</line>
<line>   . . .</line>
<line>    </line> &apos;white space also comes
<line>}</line>
</lines>", LoadOptions.PreserveWhitespace);

string result = doc.Root.Value;

Console.WriteLine(result);

輸出:

public static void main(String[] args)
{
   <>double result = Math.pow(2, 3);
   . . .
     'white space also comes
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM