2015-12-17 4 views
-4

Я использую регулярное выражение в своем приложении, и я хочу проверить его для разных комбинаций. Как мне указать, начинается с 'a' и заканчивается на 'e'?

+1

Используйте ['^ a [\ s \ S] *? E $'] (https: // regex101.com/r/uA7hK6/1) – Tushar

+1

@Tushar почему '[\ s \ S]', а не '.'? –

+0

Почему все предлагают совместить * любые * символы? Я думаю, что необходимо использовать '\ w *': '^ ap * \ w * e $', чтобы разрешать буквенно-цифровые символы. –

ответ

4

* соответствует 0 или более предшествующим символам. Таким образом, ваш шаблон указывает, что будет 0 или более p s.

Он соответствует ae, ape и appppppppppppppppppppppppppppppppppppppppppppppe, но не яблоко.

Типичная конструкция для «соответствовать что-нибудь» является .* (соответствует любому символу ноль или более раз), и ваш шаблон будет:

^a.*e$ 
3

Регулярное выражение работает, если добавить . до звезды *:

(^ap.*e$) 

Однако, для ваших требований нет необходимости в p, так что это будет делать

(^a.*e$) 

Вы можете объяснить это регулярное выражение следующим образом (см это link)

  1. ^ Assert позиции в начале строки
  2. a соответствует персонажу буквально (чувствительно к регистру)
  3. .* спичек любой символ (кроме новой строки). Квантор * матчи между нулем и неограниченное количество раз, столько раз, сколько это возможно, отдавая по мере необходимости
  4. e соответствует символу е буквально (чувствительно к регистру)
  5. $ позиции утверждают, в конце строки
1

Попробуйте этот номер ^a(.*)e$. шаблон для запуска с «а» заканчивается «е»

+0

Бесполезные круглые скобки. –

+0

Скобки для группировки. дает больше ясности, вот и все. не грех, если вы его используете –

+0

Я знаю, но они могут быть пропущены для новичков. –

0

Как я указываю начинается с 'a' и заканчивается 'e'?

Если вы ищете целое слово в его границах, как это:

\ba\w+e 

Вы можете использовать \b якорь, чтобы соответствовать word boundaries в модификатор g выполнить глобальный матч ,

var result = "apple orange apple banana carrot apple".match(/(\ba\w+e)+/g); 
alert(result); 
Смежные вопросы