我有<textarea>
用户输入文字的地方。该文本可以包含特殊字符,我需要使用HTML标记进行解析和替换以用于显示目的
例如:
粗体文字将输入为:*some text*
并解析为:<strong>some text</strong>
网址将输入为:#some text | to/url#
并解析为:<a href="to/url">some text</a>
解析此文本输入的最佳方法是什么?
正则表达式? (我对正则表达式没有任何经验)
一些Python库?
或者我应该编写自己的解析器,“读取”输入并在需要的地方应用逻辑?
答案 0 :(得分:4)
您描述的语言的重点元素看起来像Markdown。
您应该考虑使用Markdown。还有一个Python module可以解析它。
答案 1 :(得分:1)
最好的方法取决于您输入的“语言”究竟是什么。如果它具有与HTML相同的嵌套结构,则不希望使用正则表达式。 (必要的链接:RegEx match open tags except XHTML self-contained tags)
您是否正在发明自己的小标记语言?
答案 2 :(得分:1)
您可以查看一些现有的库来解析wiki文本:
这个似乎与您定义的格式相同。
标题:! Heading1文字!!标题2文字!!! Heading3文本
粗体:粗体文字
斜体:斜体文字
下划线:+带下划线的文字+
或者这个有一个非常简单的API并且允许检查给定文本是否实际上是维基文本。
更新 - 添加了python wiki解析器:
查看来自here的wiki解析器列表。
Media wiki-parser似乎是一个很好的python解析器,可以从wiki标记生成html: