Portál AbcLinuxu, 11. května 2024 14:25


Dotaz: Vim, substitute - negativní regexp

16.7.2013 19:20 Přemek
Vim, substitute - negativní regexp
Přečteno: 253×
Odpovědět | Admin
Dobrý den, potřeboval bych ve Vim skriptu pomocí příkazu substitute (nebo i jinak) vytáhnou z řetezce
--CTSD0:4,0.00,257.53,257.53,,STK4 CUT 257.53,22,1050348.64,762697.72,0.01,0.03
string mezi "--CTSD0:" a první čárkou ",". Tedy v tomto případě hodnotu 4. Jdu na to nějak takto
 let id = substitute(radek,"--CTSD0:\\(,\\)\\@!.*","\\1","g")
, ale zjevně špatně. Máte prosím někdo nápad? Díky.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.7.2013 19:52 Kit
Rozbalit Rozbalit vše Re: Vim, substitute - negativní regexp
Odpovědět | | Sbalit | Link | Blokovat | Admin
let id = substitute(radek, "--CTSD0:\\([^,]*\\),.*$","\\1","g")
16.7.2013 19:59 potato
Rozbalit Rozbalit vše Re: Vim, substitute - negativní regexp
Odpovědět | | Sbalit | Link | Blokovat | Admin
let id = substitute(radek, '--CTSD0:\([^,]*\),.*', '\1', '')
wamba avatar 16.7.2013 23:02 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Vim, substitute - negativní regexp
Odpovědět | | Sbalit | Link | Blokovat | Admin
popř. pomocí matchstr
let id = matchstr(radek, '\(--CTSD0:\)\@<=[^,]*') 
nebo
let id = matchstr(radek, '[^,]*',8) 
pokud je po : včetně osm znaků
This would have been so hard to fix when you don't know that there is in fact an easy fix.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.