Inverte a correspondência de expressão regular no TextMate

1

Eu tenho esta string:

goose goose goose random goose goose test goose goose goose

Estou usando a expressão regular no TextMate para encontrar qualquer palavra que não seja goose . portanto, random e test .

Então, tentei essa expressão regular:

[^\sgoose\s]

Mas isso não está fazendo exatamente o que eu quero. Está combinando qualquer caractere que não seja um space ou letras g o s e .

Como posso encontrar a expressão regular para corresponder a qualquer palavra inteira que não seja goose ? Portanto, deve haver duas correspondências random e test .

    
por luciano 25.06.2018 / 15:41

1 resposta

3

Não tenho certeza se funcionará com o TextMate (eu não o tenho, mas testei com o Notepad ++).

Você pode tentar:

\b(?:(?!goose)\w)+\b

Explicação:

\b          : word boundary
(?:         : start non capture group
  (?!goose) : negative lookahead, make sure we don't have the word "goose"
  \w        : a word character, you may use "[a-zA-Z]" for letters only or "." for any character but newline
)+          : group may appears 1 or more times
\b          : word boundary
    
por 25.06.2018 / 16:15