富文本解析问题, 请教

比如一段文本

这是一段简单的富文本, ##这里是加粗##, **这里是斜体, **然后<u>这里是下滑线</u>, 最后##<u>我还可以任意的嵌套</u>##

这样的文本想解析成一个抽象结构, 比如

[
    {
        "text":"这是一段简单的富文本, "
    },
    {
        "text":"这里是加粗",
        "bold":true
    },
    {
        "text":","
    },
    {
        "text":"这里是斜体,",
        "italic":true
    },
    {
        "text":"然后"
    },
    {
        "text":"这里是下滑线",
        "underline":true
    },
    {
        "text":",最后"
    },
    {
        "text":"我还可以任意的嵌套",
        "bold":true,
        "underline":true
    }
]

做到如上的解析, 应该怎么去实现. 我现在的做法是用
正则循环一遍, 初步得到一个数组, 但是数组里面可能会有这样的未解析完全的格式

{
text: "<u>我还可以任意的嵌套</u>",
bold: true
}

然后需要再不断的循环这个数组, 知道所有的结构是解析完全.

请问有更直接的方法吗?

阅读 2k
1 个回答

写一个解析器,做 tokenizer,从第一个字符开始解析,正则不太行,会有很多问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题