Я новичок в использовании регулярного выражения, и у меня возникают проблемы с разбором строки. Я работаю над анализом формулы, заданной в виде строки, с использованием регулярного выражения.C# Разделите строковое представление формулы
В настоящее время мое регулярное выражение:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|(-)|(\\+)|(\\*)|(/)|(\\s+)")
Один из тестов, что регулярное выражение не может обработать это когда формула имеет показатели.
Пример:
Formula = "1e-2 + 5.0"
Мой требуемый выход
["1e-2", "+", "5.0"]
, но я получаю
["1e", "-", "2", "+", "5.0"].
Я попытался изменить регулярное выражение, чтобы убедиться, что символ в передней части минус знак не указан e:
string[] formula_substrings = Regex.Split(formula, "(\\()|(\\))|((^e)-)|(\\+)|(\\*)|(/)|(\\s+)")
И это вызывает проблемы, когда выражение
Formula = "5+5-2"
Это даст выход:
["5", "+", "5-2"]
Когда мой желаемый выход
["5", "+", "5", "-", "2"]
Спасибо заранее помощь!
Также читайте о жадном (*) и не жадном (*?) –