正则表达式在给定单词后找到下一个单词(包含特殊字符)

时间:2014-03-05 09:39:44

标签: c# regex

我遇到编写REGEX以从字符串中获取所需输出的问题。

我有一个像string simpleInput = @"Website address www.yahoo[mail].com AND Following is the";

这样的字符串

我想指定“地址”字,结果需要在其后面的下一个字,即"www.yahoo[mail].com"

我写了以下一段代码。

string pattern = @"address (?<after>\w+)";

MatchCollection matches = Regex.Matches(simpleInput, pattern, RegexOptions.Multiline | RegexOptions.IgnoreCase);
string nextWord = string.Empty;
foreach (Match match in matches)
{
    nextWord = match.Groups["after"].ToString();
}
Console.WriteLine("Word is: " + nextWord );

这给了我输出: Word是:www

我期望输出为www.yahoo [mail] .com

有人可以帮忙吗? 我尝试用\ D +,它给了我整个字符串..直到字符串的结尾,所以给出了额外的文字,如“AND Follow is the”也会出现在结果中。

我只想要单词“www.yahoo [mail] .com”

1 个答案:

答案 0 :(得分:1)

\w+与您要匹配的字符串中的.或其他字符不匹配。请尝试使用\S+代替非空格字符:

string pattern = @"address (\S+)";