RegEx: добавить квантификатор в группу захвата для всех результатовC#

Место общения программистов C#
Ответить
Anonymous
 RegEx: добавить квантификатор в группу захвата для всех результатов

Сообщение Anonymous »

Требования:
  • Должно быть 4 символа или ни одного.
  • Должно быть заключено в двойные кавычки.
    Допускаются символы A–Z, 0–9, пробелы.
  • Пробелы – это только ведущие пробелы.
  • Никаких ведущих нулей .
  • Допускается находиться в середине другой строки.
Примеры:
У меня есть следующие допустимые строки...

Код: Выделить всё

 "   1"
"  12"
" 123"
"1234"
" 123"
" 12A"
""
Следующая строка НЕдействительна...

Код: Выделить всё

"   1234"
" 1234"
"0 12"
"0012"
В настоящее время я использую следующее регулярное выражение, чтобы проверить корректность строки...

Код: Выделить всё

"(|[0-9A-Z\-]{4}| {1}[0-9A-Z\-]{3}| {2}[0-9A-Z\-]{2}| {3}[0-9A-Z\-]{1})"
Примечание: чтобы внести ясность: приведенное выше регулярное выражение НЕ будет соответствовать моим требованиям, поэтому я задаю этот вопрос.
Я надеялся на это Я мог бы использовать более простое совпадение, что-то вроде следующего...

Код: Выделить всё

"(| {0,3}[0-9A-Z\-]{1,4})"
Единственная проблема, с которой я столкнулся, заключается в том, что приведенное выше также будет соответствовать этому значению, например «1234», что неприемлемо. Есть ли способ ограничить группу захвата только четырьмя символами?

Подробнее здесь: https://stackoverflow.com/questions/565 ... ll-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»