使用正则表达式匹配子字符串的最后一个单词

时间:2013-03-07 10:45:17

标签: c# regex

我需要匹配句子中的一个单词,几乎可以是任何单词。该句子看起来类似于以下内容:

这位老人今天走了很长时间。

在“盲人”可以是任何东西并且可能是一个或多个单词的句子中,“今天”可以是任何东西,但总是一个单词并且“很长一段时间”。总是一样的。 我试图让“走路”每次都是一个不同的词。

我试过的是这样的:     (。+)(?=。+很长一段时间。)

哪个让我“老人走了”

我试图从那里做的是获得该子字符串的最后一个字但我不知道要添加到正则表达式中以获得它。为这个使用子串方法会更好吗?

编辑:写了我正在寻找的错误单词,在上面的文字中进行了更正。

1 个答案:

答案 0 :(得分:1)

您可以匹配整个事物,并将()中您关心的事物分组。像这样:

string s = "^.* ([^ ]+) for a long time\\.$";

Regex r = new Regex(s);
Match m = r.Match("The old man walks today for a long time.");
if(m.Success)
{
    Console.WriteLine(m.Groups[1].Value);
}