c# - 使用 Regex 在匹配前后分割 XML 字符串

标签 c# regex string split

我正在尝试格式化 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/

相关文章:

c# - VB 6.0 中的 String(33, 0) 和 C# 中的等效项

c# - 如何以编程方式获取特定网站 IIS6 的应用程序池名称? C#

python - 从正则表达式中提取文本

string - Rust 中有没有像 JavaScript 的 substr 这样的方法?

regex - Mathematica中的错误: regular expression applied to very long string

c++ - 程序计算辅音错误

c# - ViewModel 中的 WPF C# 文本框文本更改更新

c# - MemberBinding LINQ 表达式有哪些示例?

regex - 生成适合 Guids 的单词(仅供娱乐)

php - 当两者都被触发时,正则表达式多重前瞻不起作用