[英]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> <>double <inline>result</inline> = Math.pow(2, 3);</line>
<line> . . .</line>
<line> </line> '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.