Регулярные выражения C# числа

265
03 мая 2018, 06:55

Условие задачи почти полностью выполнено, застрял на моменте когда нужно вывесли кол-во нулей из всех вводимых чисел, не понимаю синтаксиса регулярного выражения https://professorweb.ru/my/csharp/charp_theory/level4/4_10.php как именно сделать чтобы считало число? Сейчас программа выводит кол-во чисел в которых есть хотя бы один 0, нужно чтобы выводило именно кол-во 0-ей, как мне объяснили для этого используеются регулярные выражения, и я понимаю как парсить по символам, но мне нужно число

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace ConsoleApp1
{
class Program
{
    public static void Main(string[] args)
    {
        Console.Write("Enter numbers – ");
        int i = 0;
        int j = 0;
        int x = 0;
        Regex regex = new Regex("0");
        string line = Console.ReadLine();
        string[] splitLine = line.Split(' ');
        foreach (var sLine in splitLine)
        {
            if (regex.IsMatch(sLine))
            {
                x++;
            };
            int putnumber = System.Convert.ToInt32(sLine);
            if (putnumber > 0)
            {
                i++;
            }
            if (putnumber < 0)
            {
                j++;
            };

        };
        Console.WriteLine($"Positive numbers - {i}");
        Console.WriteLine($"Negative numbers - {j}");
        Console.WriteLine($"Zero's are - {x}");
        Console.ReadKey();

    }
}
}
Answer 1

Regex.IsMatch проверяет в целом строку на наличие шаблона. В случае если нужно получить все вхождения шаблона, то применяют функцию Matches. Вот пример для вашего случая.

x += regex.Matches(sLine).Count;

Если вам нужны только количество нулей в строке, то предлагаю другой вариант решения.

line.Count(c => c == '0');

Это функция посчитает за вас все символы в строке, которые эквивалентны нулю в строковом представлении.

READ ALSO
Как эмулировать нажатие на кнопку в приложении WPF C#

Как эмулировать нажатие на кнопку в приложении WPF C#

Подскажите, как в приложении WPF эмулировать программно нажатие на кнопку Button левой клавишей мыши? Использовать button1PerformClick() не предлагать,...

190
SaveChanges() как работает?

SaveChanges() как работает?

При использовании на контексте SaveChanges() или SaveChangesAsync() после добавления какого-то элемента в экземпляр контекста изменения сохраняются только...

217
DateTime.CompareTo() можно ли сделать сравнение без учета миллисекунд?

DateTime.CompareTo() можно ли сделать сравнение без учета миллисекунд?

DateTimeCompareTo(Date) сравнивает экземпляр из базы данных, и Date-данные которые пришли от клиента

236
.net core c# строковая версия массива в массив

.net core c# строковая версия массива в массив

уважаемые форумчане! Хочу написать для контрольной работы - магазинчикУже спарсил на php один сайт, поместил информацию в mysql (некоторые данные...

228