2 回答

TA贡献1772条经验 获得超6个赞
将此 XML 作为字符串读取并执行正则表达式替换是否适合您?喜欢:
Regex nullMatch = new Regex("<(.+?)_\\(NULL\\)(.+?)>");
String processedXmlString = nullMatch.Replace(originalXmlString, "<$1_BAD$2>");

TA贡献1829条经验 获得超6个赞
通常,正则表达式不是处理 XML 文件的正确方式。有一系列正确处理 XML 文件的解决方案 - 您可以继续阅读System.Xml.Linq以获得良好的开端。如果你是一个新手,这当然是你应该在某个时候学习的东西。但是,正如 Ed Plunkett 在评论中指出的那样,您的 XML 实际上并不是 XML:(并且)XML 元素名称中不允许使用字符。
由于您必须将其作为对字符串的操作来执行,因此要使用 Corak 的注释
contentOfXml.Replace("(NULL)", "BAD");
可能是个好主意,但如果任何元素可以包含字符串(NULL)作为其名称以外的任何内容,则会中断。
如果你想要一个正则表达式方法,这可能会很好地工作,但我不确定它是否没有遗漏任何边缘情况:
var regex = new Regex(@"(<\/?[^_]*_)\(NULL\)([^>]*>)");
var result = regex.Replace(contentOfXml, "$1BAD$2");
- 2 回答
- 0 关注
- 265 浏览
添加回答
举报