我需要替换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*", "");
但是现在我想在2个xml标签中使用这个模式(在这种情况下是头部)
Regex.Replace(xmlString, @"<head>\r?\n\s*</head>", "");
所以这个表达式试图替换head标签内的所有breaklines ..但由于某种原因它不起作用......
我看到其他一些主题使用?或*,但不工作
想法?
答案 0 :(得分:2)
如果您不介意新行和回车的顺序,您可以使用以下正则表达式并向前看并查看头标记:
Regex.Replace(xmlString, @"(?<=\<head\>.*)(\n|\r)(?=.*\</head\>)", "", RegexOptions.Singleline)