Regex per estrarre l'ultimo elemento dopo TAB in linea?


0

Utilizzando il motore regex Perl, non riesco a capire come estrarre l'ultimo elemento in una riga in cui gli elementi vengono divisi utilizzando il carattere TAB.

Ecco un esempio dal file di registro di Process Explorer:

^advapi32.dll\tAdvanced Windows 32 Base API\tMicrosoft Corporation\t5.1.2600.5755\tC:\WINDOWS\system32\advapi32.dll$

Ho provato quanto segue, inutilmente:

  • \ t \ w $: "Cerca stringa '\ t \ w $' non trovata!". Ha senso, poiché "\" non viene preso in considerazione
  • \ t [^ \ t]. +? $: inizia dalla seconda colonna
  • [^ \ t]. +? $: riga intera

Qualche idea?

Grazie.

Risposte:


1

Usa l'avidità dei caratteri jolly: mangeranno il più possibile. Per esempio, se si desidera far corrispondere un'intera linea, utilizzare: ^.*\t([^\t]+)$. Il ^.*\ttutto le partite che precede una tab(compreso) e il ([^t]+)$gruppo di partite che cosa state cercando (e si può fare riferimento con $1in questo caso).


0

Non eri lontano: molto semplicemente \t[^\t]+$(o \t([^\t]+)$se riesci a catturare un gruppo dal risultato (il gruppo che stai cercando è tra parentesi)


Grazie ma ho provato "\ t ([^ \ t] +) $" e rimuove semplicemente l'ultimo \ t prima dell'ultimo elemento
OverTheRainbow

Puoi spiegare ulteriormente cosa stai facendo con questi regexp, esattamente? Perché posso assicurarti che questo corrisponde a quello che ti serve.
Orabîg,

Ok dimenticalo. Ti ho appena visto dare credito ad un altro ...
Orabîg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.