1

我有一个<textarea>用户输入他的文本的地方。文本可以包含特殊字符,我需要解析这些字符并将其替换为 HTML 标记以用于显示目的。
例如:
粗体文本将输入为:*some text*并解析为:<strong>some text</strong>
URL 将输入为:#some text | to/url#并解析为:<a href="to/url">some text</a>

解析此文本输入的最佳方法是什么?
正则表达式?(我对正则表达式没有任何经验)一些 Python 库?
或者我应该编写自己的解析器,“读取”输入并在需要的地方应用逻辑?

4

3 回答 3

4

您描述的语言的强调元素看起来像Markdown

您应该考虑按原样使用 Markdown。也有一个Python 模块可以解析它。

于 2012-05-01T12:02:24.993 回答
1

最好的方法取决于您输入的“语言”到底是什么。如果它具有与 HTML 相同类型的嵌套结构,则您不想使用正则表达式。(必填链接:RegEx 匹配开放标签,XHTML 自包含标签除外

你在发明你自己的小标记语言吗?

  • 如果你是:为什么?为什么不使用已经存在的解析器之一,例如 Markdown 或 reST?
  • 如果不是:为什么要编写自己的解析器?不是已经有了吗?
于 2012-05-01T12:01:34.957 回答
1

您可以查看一些现有的用于解析 wiki 文本的库:

这似乎与您定义的格式相同。

标题:!标题 1 文本!!标题2文字!!!标题 3 文本

粗体: 粗体文本

斜体: 斜体文本

下划线:+下划线文字+

或者这个有一个非常简单的 API 并允许检查给定文本是否实际上是 wiki 文本。

更新- 添加了 python wiki 解析器:

从这里查看wiki 解析器列表。

Media wiki-parser 似乎是一个很好的 python 解析器,可以从 wiki 标记生成 html:

https://github.com/peter17/mediawiki-parser

于 2012-05-01T12:03:31.050 回答