Portál AbcLinuxu, 11. května 2025 16:05

Dotaz: Pomoc pri konstrukci regularnho vyrazu

pele avatar 8.11.2006 23:17 pele | skóre: 28 | blog: Bleabr | UH
Pomoc pri konstrukci regularnho vyrazu
Přečteno: 79×
Odpovědět | Admin

Vim ze je to hloupy dotaz ale potreboval bych pomoct s konstrukci regularniho vyrazu.

Situace je nasledujici: mam v retezci obsah adresare, tedy jmena vsech podadresaru a souboru, vzajeme oddelenych " \n". Potrebuji ziskat pouze soubory zacinajici:

soubor[0-9]{1,3}.xml
jsem regularni piskle. Nemohu na to prijit. Dekuji slechcetnym pomocnikum:-)

Slibuji ze problematiku nastuduji.

Pravda má jednu velkou výhodu: člověk si nemusí pamatovat, co řekl.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.11.2006 23:55 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tipuju, že soubor[0-9][13]\.xml $ (na každý řádek, jak řetězec rozdělit závisí na tom, v čem to vlastně máš napsaný).
pele avatar 9.11.2006 00:46 pele | skóre: 28 | blog: Bleabr | UH
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Java.
Pravda má jednu velkou výhodu: člověk si nemusí pamatovat, co řekl.
m$ lipo $m avatar 9.11.2006 00:23 m$ lipo $m | skóre: 19 | blog: čaj o páté | Redmond
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
v podstate to mas hotovy pokud teda {1,3} ma byt interval cetnosti

ls | egrep soubor[0-9]\{1,3\}.xml
Albuquerque, New Mexico (April 4, 1975)
pele avatar 9.11.2006 00:46 pele | skóre: 28 | blog: Bleabr | UH
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu

Hmm neco shnileho je ve state Danskem, takhle sem to taky zkousel ale nefungovalo to podle mych predstav. Kazdopadle diky. Zatim resim operativne, viz. nize.

Apropos, jaky mate nazor na to, ze filtrovani souboru provadim jakymsi filtrem implementujici FilenameFilter. To znamena, ze tento filtr projde cely aktualni adresar a kontroluje nazvy souboru/adresaru, cim bude adresar vetsi tim bude program pomalejsi. Je nejaky jiny, rychlejsi zpusob??

Pravda má jednu velkou výhodu: člověk si nemusí pamatovat, co řekl.
9.11.2006 08:27 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Rychlejší způsob nebude, musíte vždy projít všechny soubory. Rychlejší způsob by byl, pokud by FS měl nějakým vhodným způsobem zaindexované názvy souborů a umožňoval by ten index použít pro vyhledávání.

Pro Javu je konstrukce soubor[0-9]{1,3}.xmlsprávná – vybere soubory s názvem soubor a za ním 1 až tři číslice. Problém bude spíš v kódu okolo.
Pattern pattern = Pattern.compile("soubor\\d{1,3}.xml");
String[] a = "soubor1.xml\nsoubor.xml\nsoubor235.xml\nsoubor123.Xml\nnesoubor123.xml".split("\n");
for (String s: a) {
	if (pattern.matcher(s).matches()) {
		System.out.println(s);
	}
}
Pozor na to, že matches() kontroluje přesnou shodu s celým řetězcem, tj. nesmíte mít na začátku nebo konci jiné znaky.
pele avatar 9.11.2006 18:54 pele | skóre: 28 | blog: Bleabr | UH
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Diky, funguje bezvadne.
Pravda má jednu velkou výhodu: člověk si nemusí pamatovat, co řekl.
9.11.2006 07:24 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Pomoc pri konstrukci regularnho vyrazu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ak máš KDE, vyskúšaj kregexpeditor.

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.