Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要使用正则表达式删除两个标记之间的空白_C#_Regex - Fatal编程技术网

C# 需要使用正则表达式删除两个标记之间的空白

C# 需要使用正则表达式删除两个标记之间的空白,c#,regex,C#,Regex,我有一点XML,我想去掉外部空白。作为前言:输出不是格式良好的xml,这是我要处理的专有规范 样本为: <mattext> <span>A</span> <span>more text</span> </mattext> A. 更多文本 我需要的是: <mattext><span>A</span> <span>more text</span>&l

我有一点XML,我想去掉外部空白。作为前言:输出不是格式良好的xml,这是我要处理的专有规范

样本为:

<mattext>
  <span>A</span>
  <span>more text</span>
 </mattext>

A.
更多文本
我需要的是:

<mattext><span>A</span>
  <span>more text</span></mattext>
A
更多文本
打开的
和内部内容的第一位之间的所有空白都消失了,关闭的
也是如此

我试过:

var output = Regex.Replace(input, @"<mattext>*<", "<mattext>", 
             RegexOptions.Multiline);

var output=Regex.Replace(input,@“*它不是空白,它是\r\n或者两者都是\r\n

它不是空白,它是\r\n或者两者都是\r\n

尝试使用:

var output = Regex.Replace(input, @"(?<=<mattext>)\s*|\s*(?=</mattext>)", "");
var output=Regex.Replace(输入,@)(?尝试使用:

var output = Regex.Replace(input, @"(?<=<mattext>)\s*|\s*(?=</mattext>)", "");

var-output=Regex.Replace(输入,@)(?
var-output=Regex.Replace(输入,@“\s*
var-output=Regex.Replace(输入,@”\s*类似于@Jerry的答案,带有额外的防护装置,以确保
在输入的开始处,
在输入的结束处

Regex.Replace(input,
  @"(?:(?<=^\<mattext\>)[^\<]*)|(?:[^\>]*(?=\</mattext\>$))",
  string.Empty,
  RegexOptions.Multiline);
Regex.Replace(输入,

@“(?:(?类似于@Jerry的回答,带有额外的保护,以确保
位于输入的开始,而
位于输入的结束

Regex.Replace(input,
  @"(?:(?<=^\<mattext\>)[^\<]*)|(?:[^\>]*(?=\</mattext\>$))",
  string.Empty,
  RegexOptions.Multiline);
Regex.Replace(输入,

@"(?:(?不仅仅如此。简单的\r\n替换会留下相当多的空白。好的,那么源不在您的控制范围内,是吗?可能的重复:不仅仅如此。简单的\r\n替换会留下相当多的空白。好的,那么源不在您的控制范围内,是吗?可能的重复:这似乎是最直接的方法这似乎是处理我特殊需要的最直接的方法。