Я работаю над получением screen_name
и tweetid
из URL-адресов Twitter на основе соответствия групп регулярных выражений.
(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