Я хочу, чтобы генерировать следующий язык:L = {a^nb^m | п + т = к, п, т> = 0} с использованием регулярных выражений в C#
L={a^nb^m| n+m=k ,n,m>=0}
для постоянного k
.
Я использую класс Regex
пространства имен System.Text.RegularExpressions
.
Лучшее решение я прямо сейчас:
public void Match(string input, int k)
{
Regex regex = new Regex(@"a*b*");
Match match = regex.Match(input);
if(match.Length==k)
Console.WriteLine("Successfully");
else
Console.WriteLine("Don't match");
}
Для k=5
следующие входы успешно:
"aaabb"
"aabbb"
"aaaaa"
Это один, например, не является:
"aaabbb"
"ab"
Что самый элегантный способ добиться этого?
Вы пробовали http://regexhero.net/tester/? :) – Live
@Live Нет, я использую http://regexpal.com/, который похож на – Cyberguille