Portál AbcLinuxu, 12. května 2025 08:08

Dotaz: Regulární výrazy. Práce s řetězci v calcu.

16.6.2009 23:02 pukan
Regulární výrazy. Práce s řetězci v calcu.
Přečteno: 237×
Odpovědět | Admin
Regulární výrazy. Zdravím, mám tady pro mě, kdo se teprve regexps učí pikantnost, pro zkušenějšího malina. Vysvětlím na příkladu. 1.) Mám výraz z csv souboru 'group - user1, user2, user3, atd; /server/path/', kde 'group - user1, user2, user3' je uložen v buňce a1 a '/server/path/' je v b1. Za názvem grupy je vždy ' - ' a vypreparovávám text do tohoto formátu: '/server/path/group'. Jelikož jsem byl zvyklý si vypomáhat vzorci v openoffice.org/calc, do buňky a1 dám 'group - user1, user2, user3, atd', do b1 '/server/path/'. Mám odzkoušený tento vzorec: '=b1&left(a1;search("-";a1)-2)'. Dále vyzobávám z výrazu tento text: 'user1, user2, user3, atd'. Opět používám v calcu tento vzorec: '=mid(a1;search("-";a30)+2;99)'. 2.) Řetězec z csv souboru 'PRIJMENI; JMENO' transformuji na formát 'Prijmeni, Jmeno' tímto výrazem: '=upper(left(a1;1))'&lower(mid(a1;2;99))&", "&upper(left(b1;1))&lower(mid(b1;2;99)). 3.) Vstupní formát ve tvaru 'xx-yyyyyzzz' anebo 'xx-yyyyzzz', kde 'xx-' není podstatné, 'yyyyy' je prvních pět (v některých případech čtyři) písmen z příjmení a 'zzz' první tři písmena ze jména. 'yyyyy' získám vzorcem '=upper(mid(a1;4;1)&lower(mid(a1;5;len(a1)-7))', 'zzz' získám vzorcem '=upper(mid(a1;len(a3)-2;1)&lower(right(a1;2))'. ##### Jakým způsobem lze 1.-3. nahradit regulárními výrazy?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Na otázku zatím nikdo bohužel neodpověděl.

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.