Portál AbcLinuxu, 8. května 2024 19:52


Dotaz: RegExp: zachytávání nových řádků

1.3.2004 10:51 Robert Krátký | skóre: 94 | blog: Robertův bloček
RegExp: zachytávání nových řádků
Přečteno: 72×
Odpovědět | Admin
Potřeboval bych popostrčit s následující věci... Stále mi není jasné, jak pomoci regulárních výrazů zachytávat více řádek. Například:

První případ:

A

B

Druhý případ:

A
 blabla
B
Chci zachytit tři možnosti: Asi mi nedochází něco zřejmého, ale proč například mohu (úspěšně) provést sed 's/A/X\n/', ale sed 's/A\n/X/' již ne?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.3.2004 11:09 ivok
Rozbalit Rozbalit vše RegExp: zachytávání nových řádků
Odpovědět | | Sbalit | Link | Blokovat | Admin
... protože se ten regexp spouští vždycky nad jedním řádkem. Řešení vím v perlu (jo kanon na vrabce :-), s sedu to asi taky půjde vyřešit (možná nastavit $IFS nebo tak něco).
1.3.2004 11:27 Yeti
Rozbalit Rozbalit vše RegExp: zachytávání nových řádků
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed pracuje nad řádky, pokud chceš zpracovávat (tj. např. matchovat) více zároveň, musíš to dělat explicitně, což je celkem otrava.

Pokud je přijatelné načítat text celý a pak teprve matchovat, vezmi perl či python, a udělej to tak.

Moc mě nenapadá, čím snadno matchovat víceřádkové regulární výrazy a přitom to streamovat...

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.