Затмение и регулярное выражение, которое соответствует слову X, за исключением некоторых более длинных слов, которые включают в себя X - PullRequest
0 голосов
/ 29 ноября 2018

В качестве примера: я хотел бы использовать Eclipse File Search для подсчета вхождений be (без учета регистра), но не для подсчета вхождений believed, babel, wannabe и become.Допустим, у нас есть примерная часть «кода»:

// Belfast is believed to become a part of the world where 
// people use word "be" most often; wannabe, babel?

Я бы хотел, чтобы Eclipse посчитал, что над частью «кода» содержится 2 совпадения (в Belfast и "be").Подводя итог, я ищу регулярное выражение, которое:

  • соответствует всем словам, содержащим be (без учета регистра),

и одновременно:

  • не соответствует явному слову become
  • не соответствует явному слову babel
  • не соответствует явному слову believed
  • не соответствует явному словуwannabe

Не могли бы вы мне сказать, как мне этого достичь?

РЕДАКТИРОВАТЬ: я отредактировал тело вопроса, потому что приведенный мной ранее пример не был полностьюназвание вопроса.Более того, я предоставил маркированный список с разъясненными правилами.

1 Ответ

0 голосов
/ 29 ноября 2018

Попробуйте что-то вроде этого: (?i)\b(\w*be(?!lieved|come)\w*)\b

Пример: https://regex101.com/r/79VEzr/1

Объяснение:

  • (?i) - отметка для включения нечувствительности к регистру
  • \b - сопоставить границу слова (на обоих концах выражения, чтобы соответствовать отдельному слову)
  • (\w*be(?!lieved|come)\w*) - захватить слово
    • \w* - сопоставить любую последовательностьсимволов слова
    • be - Совпадение be буквально
    • (?!lieved|come) - Отрицательный прогноз, обеспечивающий, что за be не следует lieved или come (удаляетповерил и стал результатом)
    • \w* - сопоставить больше символов слова после be
  • \b - сопоставить конечную границу слова
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...