C# Regex error Quantifier {x,y} ничего не следует
Я написал небольшую программу, которая преобразует текст на английском языке в Pig Latin в Visual Basic. В настоящее время я конвертирую его в язык C#. И в процессе преобразования я сталкиваюсь с ошибкой, связанной с регулярными выражениями.
Правила, с которыми я работаю:
- Строка начинается с a, e, i, o или u
- Строка содержит a, e, i, o, u или y
В VB я написал эти правила следующим образом (обе переменные являются bool):
isVowel = words(counter) Like "[aeiou]*"
isInside = words(counter) Like "*[aeiouy]*"
куда Private index As Integer = -1
Private words(index) As String
,
И цикл For
For counter As Integer = 0 To words.Length - 1
isVowel = words(counter) Like "[aeiou]*"
isInside = words(counter) Like "*[aeiouy]*"
//proceed with conversion logic
Next counter
После исследования я использовал следующую статью в качестве ссылки, чтобы помочь с конверсией. Я закончил преобразование этих строк следующим образом:
isVowel = Regex.IsMatch(words[counter], "[aeiou]*");
isInside = Regex.IsMatch(words[counter], "*[aeiouy]*");
Сейчас я проверяю оба эти правила на моей первой строке в тексте, которая называется Адам. В VB, для первой буквы a
И isVowel, и isInside возвращают true. Для C# isVowel возвращает true, но isInside возвращает следующую ошибку вместо true, как я и надеялся:
Quantifier {x,y} following nothing
Я искал темы в SO (это были конкретные случаи, но я пытался использовать их ответы в качестве возможных указателей) вместе с SO wiki, которую он предлагал. Я попытался обновить правило, основываясь на том, что я узнал из вики и этой ветки (и в этой я буду использовать только пару для ссылки из 10+ найденных мной тем) о *, + и?. Я пытался использовать оба + и? на предыдущем шаблоне персонажа. Но он возвращает ту же ошибку.
Можете ли вы указать мне правильное направление, почему это правило возвращает ошибку? Я что-то упустил в C#-специфичном регулярном выражении?