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

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

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

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

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

textual
Листинг программы
using System;
using System.Text.RegularExpressions;
 
internal class Program
{
 
 
    private static void Main(string[] args)
    {
        Regex reg = new Regex(@"^(?<string>\S+)\s(?<Number>\d+)$");
 
        string[] str = {
           "123 123",
            "Dog 7",
            "Cat 2",
            "People 100",
            "Word   123",
            "Word1",
            " Word -1",
            "Word -1",
            "Word 1  ",
            "Word Word"
 
 
        };
 
        foreach (var s in str)
        {
            var match = reg.Match(s);
 
            Console.WriteLine(match.Groups["string"]+" "+match.Groups["Number"]);
        }
 
 
    }
}

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


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

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

14   голосов , оценка 4.071 из 5
Похожие ответы