Поиск в текстовом файле слов с определенными окончаниями в MATLAB - PullRequest
1 голос
/ 18 октября 2019

У меня есть следующий текстовый файл (MATLAB):

myText = 'In a starry night, the czar and the star drove the car to a bar not far away: ar, ar.'

Теперь у меня есть задача извлечь все слова, заканчивающиеся на «ar». Я пробовал это с помощью следующего кода, но у меня проблема в том, что я не учитываю двухбуквенные слова (например, «ar», «ar» в конце фразы).

regexp(myText,'[a-z]+ar[^a-z]','match')

У кого-нибудь есть способ также включить двухбуквенные слова?

Ответы [ 2 ]

2 голосов
/ 18 октября 2019

В шаблоне, который вы пробовали [a-z]+ar[^a-z], ожидается не менее 4 символов:

  • [a-z]+ совпадений 1 или более раз az
  • ar 2 символа
  • [^a-z] отрицательный класс символов, соответствует любому символу, кроме az

Один вариант, который также соответствует 2-буквенным словам ar в строке примера, состоит в том, чтобы повторять класс символов 0+ раз [a-z]*

Затем сопоставьте ar и используйте границы слов \< и \>

\<[a-z]*ar\>

Regex demo

1 голос
/ 18 октября 2019

Как насчет этого

([a-z]+|)ar[^a-z]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...