Я хотел бы иметь регулярное выражение, которое может фиксировать некоторые определенные комбинации для четырех слов, предоставленных пользователем. Слова разделяются только запятой или пробелом.
возможные слова:
- нет
- объединить
- онлайн
- магазин
Возможные комбинации: если ни один из них не присутствует, тогда ничего другого не должно существовать в пользовательском вводе. Если он-лайн или магазин присутствуют (1 или оба), то объединение должно существовать и наоборот.
Вот несколько примеров:
- нет (catch)
- нет комбайн (не ловить)
- комбайн онлайн (ловить)
- комбайн (не
enter code here
ловить) - комбайн интернет-магазин (ловить)
- хранить в Интернете (не перехватывать) (потому что комбинат отсутствует)
- хранить в магазине (не перехватывать)
Мой регулярный код до сих пор Регулярный запрос попытаться ^(?:none|combine|online|store| |,)+$
Но это может поймать только простую комбинацию всех этих 4-х слов. Она не улавливается, если ее нет, или для дубликатов, таких как магазин.
Это время l oop в bash пока пользователь не введет правильные данные.
read -p "Please provide with the geos that were successfully modeled (Please provide the geos separated with space or comma. e.g.: \'combine online\') " user_input2
while [[ $(echo ${user_input2,,} | grep -P -e '^(?:none|combine|online|store| |,)+$' | wc -l) -lt 1 ]]; do
read -p "Please adhere to the instructions and provide a correct input ('combine[ ,]store[ ,]online'): " user_input2
done