gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 17:20:10 24 4
gpt4 key购买 nike

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com