2015-10-26 6 views
0
входа

Пользователя может выглядеть следующим образом:Regex не обнаруживает символу

  • * символ с 1 пределом символов (нет других символов, чем *)

или

  • А.Е., ае буквы с ограничением 1 символа

Следующие данные являются допустимыми примерами: *; а; A; е; D

Я не понимаю, почему ^[A-Ea-e]{1}\*?$ не работает?

https://regex101.com/r/iG7wG6/1

ответ

2

Вам просто нужно символьный класс:

^[A-Ea-e*]$ 

RegEx Demo

Вы регулярное выражение только что позволяет опциональный * после A-E или a-e, но только никогда *.

+0

Это прекрасно работает. Что, если второе условие с 3 символами и первым 1 символом? – demonoid

+0

вот так?^[A-Ea-e] {3} \ *? $ – demonoid

+0

В этом случае это будет '^ ([A-Ea-e] {3} | \ *) $' – anubhava

1

Попробуйте использовать регулярное выражение группы:

^([A-Ea-e]|\*)$ 

Вы хотите иметь два различных варианта:

  1. один из А-Е или -е символы, ИЛИ
  2. символ *.
Смежные вопросы