,最好的辦法是找到一個版本移植到任何語言您使用的是降價庫(你沒有在你的問題中指定)。
現在你已經澄清,你只需要STRONG和EM進行處理,並且使用的是C#,我建議你看一看Markdown.NET看到這些標籤是如何實現的。正如你所看到的,它實際上是兩個表達式。下面是代碼:
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);
}
我只是碰到下面的文章來得http://kore-nordmann.de/blog/do_NOT_parse_using_regexp.html。 – mattruma 2008-09-21 11:33:13
可能是一個好主意,將此鏈接添加到您的原始文章。 – jop 2008-09-21 11:43:45