Regex para extrair o último item após o TAB na linha?

0

Usando o mecanismo regex Perl, não consigo descobrir como extrair o último item em uma linha onde os itens são divididos usando o caractere TAB.

Veja um exemplo do arquivo de log do Process Explorer:

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

Eu tentei o seguinte, sem sucesso:

  • \ t \ w $: "Cadeia de pesquisa '\ t \ w $' não encontrado!". Faz sentido, como "\" não é levado em consideração
  • \ t [^ \ t]. +? $: Inicia na segunda coluna
  • [^ \ t]. +? $: linha inteira

Alguma ideia?

Obrigado.

    
por OverTheRainbow 19.11.2012 / 14:28

2 respostas

1

Use a ganância dos curingas: eles vão comer o máximo que puderem. Por exemplo, se você quiser corresponder uma linha inteira, use: ^.*\t([^\t]+)$ . O ^.*\t corresponde a tudo que precede um tab (incluindo-o) e o ([^t]+)$ group corresponde ao que você está procurando (e você pode referenciá-lo com $1 neste caso).

    
por 19.11.2012 / 14:45
0

Você não estava longe: muito simplesmente \t[^\t]+$ (ou \t([^\t]+)$ se você pode capturar o grupo do resultado (o grupo que você está procurando está dentro do parêntese)

    
por 19.11.2012 / 14:41

Tags