[英]How to get specific value from Regex match grouping in C#
我正在基於正則表達式組匹配從Twitter網址獲取screen_name
和tweetid
。
(http(s)?:\/\/)(?:www.)?twitter\.com\/@?(#!\/)?(?<screenname>[a-zA-Z0-9_]{1,15})(?:\/status(?:es)?\/)?(?<tweetid>\d+)?
我可以在以下鏈接上獲得Twitter的screen_name
和tweetid
:
但是,我無法通過以下鏈接獲得正確的screen_name
和tweetid
:
我嘗試對正則表達式進行一些更改,但未能使其在上述鏈接上起作用。
這是我用來處理正則表達式的代碼。
Regex test = new Regex(@"(http(s)?:\/\/)(?:www.)?twitter\.com\/@?(#!\/)?(?<screenname>[a-zA-Z0-9_]{1,15})(?:\/status(?:es)?\/)?(?<tweetid>\d+)?", RegexOptions.Compiled | RegexOptions.IgnoreCase);
var matches = test.Matches("https://twitter.com/BeastsMovieUK/status/1042682155590197248");
Match m = null;
if (matches.Count > 0)
{
foreach (Match match in matches)
{
if (match.Groups["tweetid"].Success)
{
m = match;
Console.WriteLine("tweetid: {0}", m);
break;
}
if (match.Groups["screenname"].Success)
{
m = match;
Console.WriteLine("screenname: {0}", m);
}
}
}
Console.WriteLine("tweetid result: {0}", m.Groups["tweetid"]);
Console.WriteLine("screenname result: {0}", m.Groups["screenname"]);
這是我的工作示例: https : //dotnetfiddle.net/wPoCSY
如果您的兩個URL始終采用相同的格式,則可以始終對它們使用Split
。 這是一個工作示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.