的多行,我有以下功能:C#正則表達式返回文本
public static string ReturnEmailAddresses(string input)
{
string regex1 = @"\[url=";
string regex2 = @"mailto:([^\?]*)";
string regex3 = @".*?";
string regex4 = @"\[\/url\]";
Regex r = new Regex(regex1 + regex2 + regex3 + regex4, RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection m = r.Matches(input);
if (m.Count > 0)
{
StringBuilder sb = new StringBuilder();
int i = 0;
foreach (var match in m)
{
if (i > 0)
sb.Append(Environment.NewLine);
string shtml = match.ToString();
var innerString = shtml.Substring(shtml.IndexOf("]") + 1, shtml.IndexOf("[/url]") - shtml.IndexOf("]") - 1);
sb.Append(innerString); //just titles
i++;
}
return sb.ToString();
}
return string.Empty;
}
正如你可以看到我在「降價」的格式定義網址:
[url = http://sample.com]sample.com[/url]
以同樣的方式,電子郵件是寫在格式太:
[url=mailto:[email protected]][email protected][/url]
但是當我通過一個多串,用多個電子郵件地址,它只是漚只有第一封電子郵件。我希望它有多重匹配,但我似乎無法得到那個工作?
例如
[url=mailto:[email protected]][email protected][/url] /r/n a whole bunch of text here /r/n more stuff here [url=mailto:[email protected]][email protected][/url]
這隻會返回上面的第一封電子郵件?
「Multiline」正則表達式選項用於當您想使用'^'和'$'來匹配一行的開始和結束,而不是整個字符串的開始和結束時。如果你不使用這些令牌,那麼這個選項就沒有意義。 – Abion47