.NET 4.x Поправить регулярное выражение - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите пожалуйста разобраться, где ошибка в выражении:
Листинг программы
  1. new Regex(@"^(?<word>.+)\s{1}(?<number>[0-9]*)$");
Выражение должно разбирать строки вида (слово_1пробел_положительноеЧисло):
Листинг программы
  1. "123 123"
  2. "Dog 7"
  3. "Cat 2"
  4. "People 100"
И не разбирать такие:
Листинг программы
  1. "Word 123" //тут проблема
  2. "Word1"
  3. " Word -1"
  4. "Word -1"
  5. "Word 1 "
  6. "Word Word"
Проблема с "Word 123". Сколько пробелов не вводи, всеравно пропускает.

Решение задачи: «.NET 4.x Поправить регулярное выражение»

textual
Листинг программы
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. internal class Program
  5. {
  6.  
  7.  
  8.     private static void Main(string[] args)
  9.     {
  10.         Regex reg = new Regex(@"^(?<string>\S+)\s(?<Number>\d+)$");
  11.  
  12.         string[] str = {
  13.            "123 123",
  14.             "Dog 7",
  15.             "Cat 2",
  16.             "People 100",
  17.             "Word   123",
  18.             "Word1",
  19.             " Word -1",
  20.             "Word -1",
  21.             "Word 1  ",
  22.             "Word Word"
  23.  
  24.  
  25.         };
  26.  
  27.         foreach (var s in str)
  28.         {
  29.             var match = reg.Match(s);
  30.  
  31.             Console.WriteLine(match.Groups["string"]+" "+match.Groups["Number"]);
  32.         }
  33.  
  34.  
  35.     }
  36. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы