如何编写正则表达式将标记转换为HTML?例如,可以输入以下内容:
This would be *italicized* text and this would be **bold** text
然后需要将其转换为:
This would be <em>italicized</em> text and this would be <strong>bold</strong> text
与堆栈溢出使用的标记向下编辑控件非常相似。
发布于 2018-06-25 10:42:02
最好的方法是找到一个Markdown库的一个版本,移植到你正在使用的任何语言。
代码如下:
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);
}
发布于 2018-06-25 11:11:01
一个正则表达式不会。每个文本标记都会有它自己的html翻译器。更好地研究现有转换器的实现方式,以了解其工作原理。
https://stackoverflow.com/questions/-100000320
复制相似问题