正则表达式在字符串中的最后一个空格后获取任何内容

时间:2015-01-05 13:25:12

标签: c# regex

我有一个字符串,里面有一堆字,我想要的就是最后一个字。什么是正则表达式?

例如:

This is some sample words to work with

我只想从上面的字符串中找到with

6 个答案:

答案 0 :(得分:3)

更简单的解决方案是使用Split方法:

string text = "This is some sample text to work with";
string last = text.Split(' ').Last();

答案 1 :(得分:2)

我会使用LastIndexOf,应该表现更好。

string text = "This is some sample words to work with";
string last = text.Substring(text.LastIndexOf(' '));

当然,如果文本没有机会获得任何空格,那么你必须确保你没有尝试从-1索引中进行子串。

答案 2 :(得分:2)

我认为你在寻找:

[\d-]+$

演示:https://regex101.com/r/hL9aR8/2

答案 3 :(得分:1)

如果您坚持使用正则表达式,那么以下内容可以帮助您

/[a-zA-Z]+$/

Regex Demo

示例

Match m = Regex.Matches("This is some sample words to work with", "[a-zA-Z]+$")[0];
Console.WriteLine(m.Value);
=> with

答案 4 :(得分:0)

我想您的需求可能要晚一点,但这应该可以工作:

将“ [a-zA-Z] + $”替换为“ [\ S] + $” =>将使用所有非空格字符。

答案 5 :(得分:0)

每个原始问题(末尾没有数字)得到“ with”:

[^\W]+$

Regex.Match("This is some sample words to work with", @"[^\W]+$").Value == "with"