在最后一个斜杠后将值插入字符串

3

我需要在最后一个斜杠后插入一些字符串值。我的字符串值如下:

string url = "http://blog.loc/blog/news/sport/slug1_slug2_slug3-slug";

我需要获取这个值:

"http://blog.loc/blog/news/sport/hot_slug1_slug2_slug3-slug"

所以,我需要在最后一个斜杠后面插入hot_(例如),有人能帮忙吗?

2
你已经标记了这个正则表达式,你想让答案也是正则表达式吗(因为这并不一定是必需的)? - DavidG
我只需要任何好的解决方案。 - Alex Gurskiy
2个回答

13

我知道你要求使用正则表达式,但在我看来并不是必需的。

你可以直接使用string.Insert

string url = "http://blog.loc/blog/news/sport/slug1_slug2_slug3-slug";

url = url.Insert(url.LastIndexOf("/") + 1, "hot_");

URL现在保存的值为:http://blog.loc/blog/news/sport/hot_slug1_slug2_slug3-slug


秒杀了我呀... .:) - Fᴀʀʜᴀɴ Aɴᴀᴍ
3
虽然是正确的,但我不喜欢假设 LastIndexOf 返回测试字符串中正确的位置。 - Steve
LastIndexOf是一个很好的例子,可以轻松地获取正确的索引。如果OP发现它不可靠,我相信他可以找到自己的方法。 - Equalsk
一些服务器会将以“/”结尾的URL解释为与没有“/”的URL相同。因此,在我看来,这个答案并不是非常健壮。 - Frank Bryce

2

正则表达式方法:

string url = "http://blog.loc/blog/news/sport/slug1_slug2_slug3-slug";
var matches = Regex.Matches(url, "/");
var match = matches[matches.Count - 1];
string result = url.Insert(match.Index + 1, "hot_")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接