C# 如何使用正则表达式提取skype帐户
我需要从字符串数组中提取skype帐户。 它们出现在字符串中单词“skype:”之后。所以我需要使用正则表达式来提取它们。 看起来我需要这样的东西:string regexpatern=@“skype:\s*(\w*)”; 但是,当这个正则表达式与帐户相遇时。(点)与P.Revenko.Sokolniki一样,它只返回第一个字母(本例中为P),并且必须是P.Revenko.Sokolniki。C# 如何使用正则表达式提取skype帐户,c#,regex,C#,Regex,我需要从字符串数组中提取skype帐户。 它们出现在字符串中单词“skype:”之后。所以我需要使用正则表达式来提取它们。 看起来我需要这样的东西:string regexpatern=@“skype:\s*(\w*)”; 但是,当这个正则表达式与帐户相遇时。(点)与P.Revenko.Sokolniki一样,它只返回第一个字母(本例中为P),并且必须是P.Revenko.Sokolniki。 任何帮助都将不胜感激。编辑:使用此: skype:\s*(?<account>[\w.]*
任何帮助都将不胜感激。编辑:使用此:
skype:\s*(?<account>[\w.]*)
skype:\s*(?[\w.]*)
并按如下方式获取名为account的组:
String skypeAccount = Regex.Match(inputString, @"skype:\s*(?<account>(\w|\.)*)").Groups["account"].Value;
String skypeAccount=Regex.Match(inputString,@“skype:\s*(?(\w|\)*))))。组[“帐户]。值;
编辑:使用以下命令:
skype:\s*(?<account>[\w.]*)
skype:\s*(?[\w.]*)
并按如下方式获取名为account的组:
String skypeAccount = Regex.Match(inputString, @"skype:\s*(?<account>(\w|\.)*)").Groups["account"].Value;
String skypeAccount=Regex.Match(inputString,@“skype:\s*(?(\w|\)*))))。组[“帐户]。值;
您需要放置\w\。放在方括号内
string c = "skype: P.Jon.Doe";
Regex ex = new Regex(@"^skype:\s*[\w\.]*");
if (ex.IsMatch(c))
{
Console.WriteLine(ex.Match(c).Value);
}
您需要放置\w\。放在方括号内
string c = "skype: P.Jon.Doe";
Regex ex = new Regex(@"^skype:\s*[\w\.]*");
if (ex.IsMatch(c))
{
Console.WriteLine(ex.Match(c).Value);
}
如果它们都由分号分隔,则不需要正则表达式 但是,使用Regex的解决方案如下:
string pattern = "(?<=skype:\s*)(?<account>[^\s]+)";
这也很简单。如果它们都用分号分隔,就不需要正则表达式 但是,使用Regex的解决方案如下:
string pattern = "(?<=skype:\s*)(?<account>[^\s]+)";
这也很简单。为什么不能从字符串中删除前6个字符呢?skype:p.Revenko.Sokolniki;skype:P.Revenko.Sokolniki;skype:PRevenko.Sokolniki;skype:prevenkosokolnikiwiwhy你不能从字符串中删除前6个字符吗?skype:P.Revenko.Sokolniki;skype:P.Revenko.Sokolniki;skype:PRevenko.Sokolniki;skype:PRevenkoSokolnikiThis字符串regexpatern=@“skype:\s*(\w\)*”;返回第一个字符和点状P。您也可以使用
[\w.]
而不是(\w\\)
。此字符串regexpatern=@“skype:\s*(\w\)*”;返回第一个字符和点状P。您也可以使用[\w.]
\S
来代替[^\S]
@Joey是的,但是在向某人解释时它不那么直观。Roman,那么正则表达式应该可以很好地工作。\S
将是[^\S]
@Joey的简写,是的,但是在向某人解释时它不那么直观。罗曼,那么正则表达式应该很好用。