我的数据库中的字段中包含以下文本:
[quote:5a7b87febe="mr smith"]This is some text.
This is more text on another line.[/quote:5a7b87febe]
我正在尝试构建一个正则表达式,它将像上面这样的任何实例转换为:
<div><h4>Posted by mr smith</h4>This is some text.
This is more text on another line.</div>
到目前为止,我整理的模式似乎适用于封闭文本中没有换行符的情况,但在上面的示例中,另一行上有文本,模式不匹配。
到目前为止,我的 C# 代码是:
var exp = new Regex(@"(\[quote)(:\w+=\"")(.*?)(\""\])(.*?)(\[\/quote)(:\w+\])");
var str = exp.Replace(str, "<div><h4>Posted by $3</h4>$5</div>");
我对正则表达式很垃圾,所以不确定如何处理出现在开始和结束“引号”标签之间的“任何”字符。
理想情况下,如果可能,我还希望表达式能够处理上述示例的嵌套实例。
另一件值得一提的是,'quote:' 标签后面的一系列字符每次都是唯一的,引号内的名称也会有所不同。