Parse key = значение с регулярным выражением

1

У меня есть простой текст:

first_name=value1
secon_name=value2
date_b = 12.01.1989

Строки разделяются символом \n. У меня есть код, который разделяет эту строку, а затем я перебираю массив и проверяю ключи:

string[] data = str.Split('\n');
foreach (var row in data)
{
   if (row.StartsWith("first_name"))
   {
       obj.FirstName = row.Remove(0, ("first_name").Length);
       ...
   }
}

Но есть около 15 пар, а код в foreach очень нечитабель. Как анализировать это с помощью регулярного выражения? Я хочу получить dictionary<key, value>.

PS. Некоторые правила:
1. Ключ без пробелов.
2. Значение может содержать пробелы.

  • 4
    Нет необходимости в регулярных выражениях. Разделить каждую строку с =
  • 0
    @LB Ну, первое = , на всякий случай значение может содержать знак = . В любом случае, это простой анализ текста - существует бесконечное количество примеров этого онлайн.
Показать ещё 1 комментарий
Теги:

1 ответ

4
Лучший ответ
(.*?)\s*=\s*([^\s]+)

Это должно сработать. Дайте вам группы, содержащие оба матча.

Взгляни.

http://regex101.com/r/wE3dU7/4

  • 0
    Не работает, если значение содержит пробел.
  • 0
    сделаю сейчас! Спасибо за разметку.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню