Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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#替换两个xml标记内的特征线_C#_Regex - Fatal编程技术网

c#替换两个xml标记内的特征线

c#替换两个xml标记内的特征线,c#,regex,C#,Regex,我需要替换xml字符串中的所有\r\n 我有一个正则表达式模式来完成我的工作: xmlString = " <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\"

我需要替换xml字符串中的所有\r\n

我有一个正则表达式模式来完成我的工作:

xmlString = " <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\"> <head> \n\r<meta name="author" \ncontent="John Doe"> </head> </html> "

Regex.Replace(xmlString, @"\r?\n\s*", "");
xmlString=“\n\r”
Regex.Replace(xmlString,@“\r?\n\s*”,“”);
但是现在我想在2个xml标记中使用这个模式(本例中为head)

Regex.Replace(xmlString,@“\r?\n\s*”,“”);
因此,此表达式试图替换head标记内的所有特征线。。但由于某些原因,它不起作用

我看到一些其他主题使用了?。或*,但不起作用


想法?

如果您不介意新行和回车的顺序,您可以使用以下正则表达式,并使用“向前看”和“向后看”作为标题标记:

Regex.Replace(xmlString, @"(?<=\<head\>.*)(\n|\r)(?=.*\</head\>)", "", RegexOptions.Singleline)

Regex.Replace(xmlString,@)(?如果您不介意换行和回车的顺序,您可以使用以下Regex和head标记的look ahead和look back:

Regex.Replace(xmlString, @"(?<=\<head\>.*)(\n|\r)(?=.*\</head\>)", "", RegexOptions.Singleline)

Regex.Replace(xmlString,@)(?请注意,您不应该“解析”,或者在您的情况下,使用Regex编辑HTML,请参见请注意,您不应该“解析”,或者在你的例子中,用正则表达式编辑HTML,谢谢。你的解决方案解决了我的问题。我离答案很远谢谢。你的解决方案解决了我的问题。我离答案很远