Українська
Типові помилки
Типові помилки
Найчастіші помилки під час роботи з регулярними виразами зібрано в табл. 2.7.
Таблиця 2.7. Типові помилки під час роботи з регулярними виразами
| Проблема | Причина | Виправлення |
|---|---|---|
перевірка IsMatch пропускає рядок із зайвими символами | шаблон без якорів шукає збіг будь-де | ^…$ або ^…\z |
рядок із завершальним \n проходить перевірку | $ відповідає і позиції перед \n | \z замість $ |
"\d+" не компілюється (CS1009) | \d у звичайному рядку C# – керувальна послідовність | @"\d+" або raw string |
.* захоплює забагато | жадібний квантифікатор | .*? або заперечний клас [^<]* |
[А-Яа-я] не приймає «Їжак» | українських літер Ґ, Є, І, Ї немає в діапазоні | \p{IsCyrillic} або повний перелік літер |
\d приймає арабські цифри | \d означає будь-яку цифру Юнікоду | [0-9] або RegexOptions.ECMAScript |
RegexParseException для рядка користувача | метасимволи +, (, . у введенні | Regex.Escape |
| програма «зависає» на деяких рядках | вкладені квантифікатори, катастрофічне повернення | простіший шаблон, matchTimeout, NonBacktracking |