[Programming Fundamentals] Regular Expressions (RegEx) - Exercises - 01. Cards
Колеги, как точно трябва да напиша positive lookbehind-а тук, за да даде 100 точки. Нещо бъркам.
https://pastebin.com/ZzfKsGGJ
Колеги, как точно трябва да напиша positive lookbehind-а тук, за да даде 100 точки. Нещо бъркам.
https://pastebin.com/ZzfKsGGJ
Решение само с regex (сънувах го).
static void Main(string[] args)
{
string prefix = "S";
string pattern = @"(?<=[SHDC|^])([2-9]|[JQKA]|10)[SHDC]";
string entryData = Console.ReadLine();
entryData = prefix + entryData;
MatchCollection result = Regex.Matches(entryData, pattern);
Console.WriteLine(string.Join(", ", result.Cast<Match>().Select(pair => pair.Value.Trim())));
}
Не са посочили в условието, че предната двойка трябва да е валидна(да завършва на SHDC).
А пък не можах да направя positive lookbehind от SHDC или ^.
Благодаря колега, така става да, исках да знам дали може с регекса да се оправи.
Пробвай така:
string pattern = @"(?<=[SHDC]|^)([2-9JQKA]|10)[SHDC]"
Така му казваш: виж преди картата дали има боя или начало на реда.
Ако не искаш да пишеш проверки трябва да хардкоднеш всеки вариант за цифра или буква преди боята ако нямаш lookbehind.
ninja.