Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Регулярное выражение для выбора всех предлогов

Мне в тексте нужно найти все предлоги. Для этого я использую следующее регулярное выражение: (\s+?(?:это|как|так|и|в|над|к|до|не|на|но|за|то|с|ли|а|во|от|со|для|о|же|ну|вы|бы|что|кто|он|она)\s+?)
в строке: Разум дан человеку для того, чтобы он разумно жил, а не для того только, чтобы он понимал, что он неразумно живет
не выбирает в ", а не для " предлог "не" потому, что "а" ограничен пробелами, "не" не выбирается так как его пробел забрала "а"


Ответ

Если необходимо найти данные слова между пробелами либо началом или концом строки, можно воспользоваться блоками просмотра назад (?(?См. демо
Если же любую букву можно найти с помщью \p{L}, то можно сформировать собственный шаблон границы слова:
(?См. демо
Здесь (?

Комментариев нет:

Отправить комментарий