Как я могу проверить, пытается ли регулярное выражение C # 1- (и-только-1) -маракровки?

StackOverflow https://stackoverflow.com/questions/3870344

  •  28-09-2019
  •  | 
  •  

Вопрос

Может быть, это очень редкий (или даже тупой) вопрос, но мне нужно это в моем приложении.

Как я могу проверить, пытается ли регулярное выражение C #, пытается сопоставить 1-символьные строки?

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

Я сделал себя ясно?

Спасибо.

Питер

PS: Я увидел ответ о расчете последних длинных сопоставленных строк, но по какой-то неизвестной причине ответ ушел. Я подумал, что это некоторое время, я думаю, что расчет финальной длины сопоставленных строк в порядке, хотя это будет немного медленным. Тем не менее, оригинальный вопрос очень редкий и утомительный.

Это было полезно?

Решение

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

Если это невозможно, вы можете ограничить возможности регулярного выражения к некоторым определенным функциям. Например, пользователь может ввести только символы для совпадения или символов для исключения. Затем вы создаете REGEX в своем коде.

например:

  • ABC Спички [ABC]
  • ^ABC Спички [^ABC]
  • A-Z Спички [A-Z]
  • # Спички [0-9]
  • \w Спички \w
  • AB#x-z Спички [AB]|[0-9]|[x-z]|\w
  • Какие случаи вам нужно поддержать?

Это было бы несколько легко разбираться и проверять.

Другие советы

Regexp будет .{1} Это позволит любому служению. Если вы хотите только альпанумерика, тогда вы можете использовать [a-z0-9]{1} или сокращение /w{1}

Другой вариант его ограничения количества символов пользователя может вводить входное поле. Установите на него максимум.

Еще один вариант - сохранить поле ввода форм в символ, а не строку, хотя вам может потребоваться некоторая обработка вокруг этого, чтобы предотвратить ошибки.

Почему бы не использовать Maxlength и сэкономьте к Char.

Вы можете искать бездействуя *, +, {}, ? и т. д. и подсчитать количество символов (не забудьте сгладить [] как один символ).

По сути, вы должны разобрать свое Regex.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top