我正在尝试格式化 XML 文档,因此我将一个字符串传递到一个方法中,例如:
"<foo><subfoo><subsubfoo>content</subsubfoo></subfoo><subfoo/></foo>"
我试图根据找到的标签来分割它。我想将每个元素(标签或内容)拆分为唯一的字符串,例如:
"<foo>", "<subfoo>", "<subsubfoo>", "content", "</subsubfoo>", "</subfoo>", "<subfoo/>", "</foo>"
为此我使用代码:
string findTagString = "(?<=<.*?>)";
Regex findTag = new Regex(findTagString);
List<string> textList = findTag.Split(text).ToList();
上面的代码工作正常,只是它没有将“内容”拆分成自己的字符串,而是:
"<foo>", "<subfoo>", "<subsubfoo>", "content</subsubfoo>", "</subfoo>", "<subfoo/>", "</foo>"
有没有办法重写正则表达式来完成这个任务,将不匹配的内容分割成自己的字符串?
或者,改写一下:是否可以在正则表达式匹配之前和之后分割字符串?
最佳答案
使用这个正则表达式(<.*?>)|(.+?(?=<|$))
并将匹配项转换到 List<string>
关于c# - 使用 Regex 在匹配前后分割 XML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419734/