C# 控制台应用中的正则表达式

本文关键字:正则表达式 应用 控制台 | 更新日期: 2023-09-27 18:03:40

"Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813"
"Fire hose Tweet - TweetID: 436660665219305472"
"Fire hose Tweet - TweetID: 436660665219305472 "

我是正则表达式 C# 的新手,从示例字符串 1 和字符串 2 中提取推文 Id 436660665219305472是什么?

C# 控制台应用中的正则表达式

你不需要正则表达式,你可以使用 Split 方法和 LINQ 来获取你想要的东西:

var input = "Fire hose Tweet - TweetID: 436660665219305472 - ActorID: 120706813";
var output = input.Split().First(x => x.All(char.IsDigit));

查看 .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);

输出:

推文ID: 436660665219305472推文ID: 436660665219305472

或者,如果您最终得到一个表示整个字符串的正则表达式,并且您使用的是分组构造,则可以执行以下操作,这就是我提到命名分组结构的原因。这是我广泛使用的一种技术。

GroupCollection tweetInfo = tweetIdRegex.Match(str1).Groups;
Console.WriteLine(tweetInfo["TweetID"].Value);

在这种情况下,它将输出:

436660665219305472