2016-05-19 2 views
-1

У меня есть это регулярное выражение (^[a-z]\s{1})+. Предполагается, чтобы соответствовать только буквы, которые разделены одним пробелом, но она по-прежнему возвращает истину, даже с этим входом:Код регулярного выражения разрешает только одно пространство

"a a a" 

Я хочу, чтобы отклонить выражение, если оно имеет два последовательных пространства. Вы можете мне помочь?

+4

Да, потому что он соответствует первому 'a' с пробелом. –

+2

Просьба прочитать: http://stackoverflow.com/questions/22937618/reference-what-does-this-regex-mean/22944075#22944075 –

+1

Похоже, вы забыли задать вопрос. Вопросы без четкой постановки проблемы не являются полезными и [вне темы] (/ help/on-topic). – zzzzBov

ответ

1

Это регулярное выражение, которое исправляет это: ^\s*([a-z]\s|[a-z]$)+\s*$

Объяснение:

  • Это соответствует строке до конца ($), поэтому он будет отбрасывать ваш пример линии
  • Это соответствует случай, когда строка заканчивается буквой - [a-z]$
  • Он игнорирует начальные и конечные пробелы: \s* в начале и в конце

Вы можете играть с этим here.