Abbina tutte le parole tranne una

Dì che ho una frase:

Sono un buon acquisto e anche un cattivo ragazzo

Come selezionare ogni parola tranne il ragazzo in questa frase usando l’espressione regolare?

Puoi usare lo sguardo negativo dietro :

\w+\b(? 

O guardare avanti in negativo perché non tutti supportano il look negativo dietro

 (?!boy\b)\b\w+ 

Qui puoi leggere lo sguardo negativo

Provare:

 \b(?!boy\b).*?\b 

che significa:

  • Interruzione parola a larghezza zero ( \b )
  • Questo non è seguito da “ragazzo” e un’altra interruzione di parole;
  • seguito da qualsiasi personaggio in un modo non avido;
  • Fino ad un’altra interruzione di parole.

Nota: l’interruzione di parola corrisponde all’inizio della stringa, alla fine della stringa e ad ogni passaggio da una parola (numero, lettera o carattere di sottolineatura) a un carattere diverso da parola o viceversa.

Quale lingua? Perché vuoi usare una regex?

 answer = yourString.Replace( "boy", "" ); 
 /\b(?!boy)\S+/g 

Se usi “ragazzo” come splitter, otterrai parti rimanenti. Potresti usarli come tasti di selezione.

 >>> re.split("boy","I am a good buy and bad boy too") ['I am a good buy and bad ', ' too'] 

Sostituisci il ragazzo al nulla … in Perl che sarebbe:

 s/boy //g