我希望能够有效地挑选字符串中的用户名,然后将它们超链接到用户个人资料。就像Facebook一样。
但问题来自人们为@Username
做这样的事情"有些话@Username ...有些话"
"有些话@Username!一些单词"
任何想法我仍然可以选择用户名,然后超链接它而不会在用户名结束后获得额外的字符?
答案 0 :(得分:1)
我喜欢尝试使用框架解决这些问题:
var list = new List<string>
{
"Some words @Username1... some words",
"Some words @Username2! some words"
};
var items = list.Select(str => string.Concat(str.Substring(str.IndexOf('@') + 1).TakeWhile(char.IsLetterOrDigit)));
//items = ["Username1", "Username2"]
当然,你需要对坏字符串进行一些异常处理。如果不允许数字,您可以将char.IsLetterOrDigit
更改为IsLetter
。