@andrey71
админю и учу C#, ASP.NET Core

Почему регулярное выражение работает не так, как на Regex101?

Добрый день!
Подскажите пожалуйста, пытаюсь в текстовой строке найти нужное число " 4 " .
На сайте https://regex101.com/ написал выражение и получил нужный результат.
5e2ad2c1b86db634827194.png

Но когда перенёс в код, выражение стало работать не так, как надо :(
string regexs = "4,|, 4$|^ 4$";
            var uDict = new Dictionary<long, string>();
          
            uDict = db.o_judgecerth.ToDictionary( j => j.Id, j => j.Judges );
            var findUsr = new List<long>();
            foreach (var u in uDict)
            {
                if (Regex.IsMatch(u.Value, regexs) == true)
                {
                    findUsr.Add(t.Key);
                }
            }

В список попадаю строки с числами 143,44 и тд.
А мне необходимы строки, которые содержать только число " 4 ", а не числа, где есть эта цифра.
Как же правильно?
Спасибо!
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
Обратите внимание, что на regex101 включен флаг Multiline - чтобы у вас оно также работало, вам тоже надо его выставить:
var myRegex = new Regex(@"4,|, 4$|^ 4$", RegexOptions.Multiline);

https://docs.microsoft.com/ru-ru/dotnet/standard/b...
А вообще вы немного неправильно используете регулярные выражения - вашу задачу можно было бы решить через Split и Contains
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы