使用c#在字符串中有效地匹配用户名和@符号

本文关键字:用户 符号 字符串 有效地 使用 | 更新日期: 2023-09-27 18:12:54

我希望能够有效地从字符串中挑选出用户名,然后将它们超链接到用户配置文件。就像Facebook一样。

但是当人们对@Username

这样做时问题就来了

"Some words @Username…有些字"
"有些话@Username!有些字"

任何想法我可能仍然挑选只是用户名,然后超链接它没有得到他们的用户名结束后的额外字符吗?

使用c#在字符串中有效地匹配用户名和@符号

我喜欢尝试使用框架来解决这些问题:

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