我正在尝试格式化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>"
有没有办法重写正则表达式来完成此操作,即将不匹配项拆分为自己的字符串?
或者,改写为:是否可以在正则表达式匹配之后在AND之前拆分字符串?
最佳答案
使用此正则表达式(<.*?>)|(.+?(?=<|$))
并将匹配项投射到List<string>