我有一些XML,我想剥离外部空白区域。作为前言:输出不是很好的形式xml,这是我降级为处理的一个预设规范。
样本是:
<mattext>
<span>A</span>
<span>more text</span>
</mattext>
我需要的是:
<mattext><span>A</span>
<span>more text</span></mattext>
开头<mattext>
与内部内容的第一位之间的所有空格都消失了,而结束</mattext>
的空格也相同。
我试过了:
var output = Regex.Replace(input, @"<mattext>*<", "<mattext>",
RegexOptions.Multiline);
但我没有运气。有人可以建议吗?
谢谢!
答案 0 :(得分:3)
尝试使用:
var output = Regex.Replace(input, @"(?<=<mattext>)\s*|\s*(?=</mattext>)", "");
(?<=<mattext>)
是一个积极的外观,并确保在空格和换行符之前有<mattext>
。
(?=</mattext>)
是一个积极的前瞻,并确保在空格和换行符之后有</mattext>
。
答案 1 :(得分:2)
var output = Regex.Replace(input, @"<mattext>\s*<", "<mattext><", RegexOptions.Multiline);
答案 2 :(得分:1)
与@Jerry的回答类似,有额外的保护,以确保<mattext>
在输入开始时,</mattext>
结束。
Regex.Replace(input,
@"(?:(?<=^\<mattext\>)[^\<]*)|(?:[^\>]*(?=\</mattext\>$))",
string.Empty,
RegexOptions.Multiline);
答案 3 :(得分:0)
它不是空白,它是\ r或\ n甚至两者都是\ r \ n