Вопрос новичков в регулярных выражениях Unix

Я начинаю изучение регулярных выражений, и мне интересно, как мне построить и протестировать регулярное выражение в нотации UNIX для всех строк гласных, содержащих подстроку ai или ui.

будет ли это просто что-то вроде: (ai|ui) ? Как я мог это проверить?


person Lucas Brodersen    schedule 05.12.2020    source источник
comment
Итак, вы ищете, за которым следует i или u, за которым следует i?   -  person Raman Sailopal    schedule 05.12.2020
comment
Представьте себе все возможные комбинации гласных aeiou: aeiuo aeuio и т. д. Мне нужно выбрать каждую строку, содержащую подстроку ai или ui   -  person Lucas Brodersen    schedule 06.12.2020


Ответы (1)


IIUC, вы хотите что-то вроде '^[aeiou]*?(ai|ui)[aeiou]*$'. Примеры:

$ echo aaauiaa | grep -E '^[aeiou]*?(ai|ui)[aeiou]*$'
aaauiaa
$ echo aaaaiaa | grep -E '^[aeiou]*?(ai|ui)[aeiou]*$'
aaaaiaa
person Arkadiusz Drabczyk    schedule 05.12.2020
comment
Когда я проверяю это выражение на regexpal.com, оно не выбирает строки гласных, содержащие подстроку ai или пользовательский интерфейс Разве это не должно работать там, но все равно мне теперь было немного понятнее - person Lucas Brodersen; 06.12.2020
comment
Не ставьте одинарные кавычки, они нужны только оболочке. Попробуйте ^[aeiou]*?(ai|ui)[aeiou]*$ - person Arkadiusz Drabczyk; 06.12.2020
comment
Большое спасибо, мой плохой. Это сработало отлично - person Lucas Brodersen; 06.12.2020
comment
Если вам нравится этот ответ, отметьте его как решенный, чтобы другие пользователи знали, что ваша проблема решена. См. также Что делать, когда кто-то отвечает на мой вопрос? - person Arkadiusz Drabczyk; 06.12.2020