由于换行,正则表达式无法正常工作?

时间:2011-04-11 23:16:59

标签: c# asp.net regex

这是我到目前为止尝试转换的内容:

[quote="Tom":1m8ud0zc]blah blah[/quote:1m8ud0zc]

<table width="99%"><tr><td class="BBquote"><strong><em>Originally posted by Tom</strong></em><br /><br />blah blah</td></tr></table>

但是引号标签之间的文本可能有换行符,这似乎使这不起作用,可以告诉我如何使(。*?)包括匹配每个特殊字符?

Message = Regex.Replace(Message,
                        @"\[quote=""(.*?)"":.*?](.*?)\[/quote:.*?]",
                        "<table width=\"99%\"><tr><td class=\"BBquote\"><strong><em>Originally posted by $1</strong></em><br /><br />$2</td></tr></table>"
            );

2 个答案:

答案 0 :(得分:3)

使用RegexOptions.Singleline。它改变了点(。)的含义,因此它匹配每个字符而不是除了\ n。

之外的每个字符
Message = Regex.Replace(Message,
                        @"\[quote=""(.*?)"":.*?](.*?)\[/quote:.*?]",
                        "<table width=\"99%\"><tr><td class=\"BBquote\"><strong><em>Originally posted by $1</strong></em><br /><br />$2</td></tr></table>",
RegexOptions.Singleline
            );

答案 1 :(得分:1)

添加\n以表达换行符。 .匹配除换行符之外的所有内容