2017-06-23 2 views
0

Je dois simplement sélectionner le mot qui suit une sélection spécifique (et celui qui le précède - les deux sont regexes séparés - ne pas être combiner em)bloc-notes regex ++, sélectionnez un mot qui suit immédiatement (et précédent) sélection

the pattern is 
<variable verbiage> 
<one or more spaces or a newline> 
"on" 
<one or more spaces or a newline> 
Word_to_select 
<optional variable verbiage> 
Examples 
1) she looks too pretty I never meant Hillary ya da ya ON delta.airlines next word 
2)yada ya   
Daddy Daddy 
    on 
united.airlines hullah 
gulla ; 
3)yada ya   Daddy Daddy on 
American.airlines some 
ricotta cheese 

Je dois obtenir dans tous les cas
'Après' regex:

delta.airlines 
united.airlines 
american.airlines 

'Précédant' regex:

ya 
Daddy 
Daddy 


Ce que j'ai essayé

(\S)\s* on \s*(\S+) 

la sélection comprend "sur" et remonte à plus loin.

+0

«J'ai besoin de sélectionner» voulez-vous dire surligner, ou que voulez-vous dire par là? Parce que regex ne fait pas de sélection. – sln

Répondre

1

Vous pouvez utiliser

\bon\s+\K\S+ 

Voir la regex demo.

L'option de correspondance doit être désélectionnée ou juste précéder le motif de (?i).

Détails:

  • \bon - un mot entier on
  • \s+ - 1 ou plusieurs espaces blancs
  • \K - Match opérateur reset
  • \S+ - 1+ symboles non-blancs.

enter image description here

2

Regardez cette démo. vous pouvez sélectionner le groupe 1 pour obtenir "précédent" et 2 pour sélectionner "suivant". http://regexr.com/3g7ps