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

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