使用换行符返回RegEx C#

时间:2013-01-22 07:15:50

标签: c# regex

我在C#中遇到正则表达式问题。 我所拥有的是表示页面的字符串(HTML等)。该字符串在不同的地方还包含\ r \ n,\ r和\ n,现在我正在尝试匹配字符串中的内容:

Match currentMatch = Regex.Match(contents, "Title: <strong>(.*?)</strong>");
string org = currentMatch.Groups[1].ToString();

这很好,但是,当我想匹配字符串中包含前面提到的任何字符(换行符)的东西时,它不会返回任何内容(空,不匹配):

Match currentMatch = Regex.Match(contents, "Description: <p>(.*?)</p>");
string org = currentMatch.Groups[1].ToString();

如果我在匹配项上方添加以下行,它会起作用:

contents = contents.Replace("\r", " ");
contents = contents.Replace("\n", " ");

但我不喜欢它修改源代码,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

默认情况下,.与换行符不匹配。您可以使用Regex Option Singleline更改此设置。这会将整个输入字符串视为一行,即该点也与换行符匹配。

Match currentMatch = Regex.Match(contents, "Title: <strong>(.*?)</strong>", RegexOptions.Singleline);

顺便说一句,我希望你知道正则表达式通常不是处理Html的方法吗?