"Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813"
"Fire hose Tweet - TweetID: 436660665219305472"
"Fire hose Tweet - TweetID: 436660665219305472 "
我是regex C#的新手,将从样本字符串1&中提取推文ID 436660665219305472
的正则表达式字符串2?
答案 0 :(得分:3)
您不需要正则表达式,您可以使用Split方法和LINQ来获得您想要的内容:
var input = "Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813";
var output = input.Split().First(x => x.All(char.IsDigit));
答案 1 :(得分:1)
查看named grouping construct for .NET
这是一个与您的方案相匹配的示例。
string str1 = "Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813";
string str2 = "Fire hose Tweet - TweetID: 436660665219305472";
var tweetIdRegex = new Regex(@"TweetID:\s(?<TweetID>\d+)", RegexOptions.ExplicitCapture | RegexOptions.Compiled);
Console.WriteLine(tweetIdRegex.Match(str1).Value);
Console.WriteLine(tweetIdRegex.Match(str2).Value);
输出:
TweetID: 436660665219305472 TweetID: 436660665219305472
或者,如果您最终得到一个表示整个字符串的正则表达式,并且您正在使用分组结构,那么您可以执行以下操作,这就是我提到命名分组结构的原因。这是我广泛使用的一种技术。
GroupCollection tweetInfo = tweetIdRegex.Match(str1).Groups;
Console.WriteLine(tweetInfo["TweetID"].Value);
在这种情况下会输出:
436660665219305472