首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式如何将标记向下转换为HTML?

正则表达式如何将标记向下转换为HTML?
EN

Stack Overflow用户
提问于 2018-06-25 01:48:54
回答 2查看 0关注 0票数 0

如何编写正则表达式将标记转换为HTML?例如,可以输入以下内容:

代码语言:txt
复制
This would be *italicized* text and this would be **bold** text

然后需要将其转换为:

代码语言:txt
复制
This would be <em>italicized</em> text and this would be <strong>bold</strong> text

与堆栈溢出使用的标记向下编辑控件非常相似。

EN

回答 2

Stack Overflow用户

发布于 2018-06-25 10:42:02

最好的方法是找到一个Markdown库的一个版本,移植到你正在使用的任何语言。

代码如下:

代码语言:javascript
复制
private string DoItalicsAndBold (string text)
{
    // <strong> must go first:
    text = Regex.Replace (text, @"(\*\*|__) (?=\S) (.+?[*_]*) (?<=\S) \1", 
                          new MatchEvaluator (BoldEvaluator),
                          RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline);

    // Then <em>:
    text = Regex.Replace (text, @"(\*|_) (?=\S) (.+?) (?<=\S) \1",
                          new MatchEvaluator (ItalicsEvaluator),
                          RegexOptions.IgnorePatternWhitespace | RegexOptions.Singleline);
    return text;
}

private string ItalicsEvaluator (Match match)
{
    return string.Format ("<em>{0}</em>", match.Groups[2].Value);
}

private string BoldEvaluator (Match match)
{
    return string.Format ("<strong>{0}</strong>", match.Groups[2].Value);
}
票数 0
EN

Stack Overflow用户

发布于 2018-06-25 11:11:01

一个正则表达式不会。每个文本标记都会有它自己的html翻译器。更好地研究现有转换器的实现方式,以了解其工作原理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档