Lista takarítása regexp segítségével


Minap belefutottam egy olyan feladatba, hogy több száz soros szövegállományt kellett letakarítani a felesleges részektől, hogy megkapjak egy listát.

A lista kb így nézett ki:

www.valami1.hu aaf3459sdfl345
www.valamisdf2.hu 493453464554949461464459
www.valamiwie.com 34sl49s

Ebből kellett volna az URL-eket kinyerni. Egyesével törölni nem jó móka, a csoportos/oszlop kijelölés sem működött intype-ban, mert az URL-ek nem azonos hosszúak voltak. Így jött a regex-es megoldás, mely segítségével minden olyan karakterláncot szerettem volna törölni, mely space-szel indul és utána bármennyi karakter állhat.

A bold jelzi, hogy mely részekre volt szükségem, a többi mehetett a kukába:

www.valmi1.hu aaf3459sdfl345
www.valamisdf2.hu 493453464554949461464459
www.valamiwie.com 34sl49s

A megoldás egyszerű annak ellenére, hogy nem értek a regexp-hez. Intype-t használtam, ott a CTRL+H billentyűkombinációval előhívtam a keresés/csere ablakot és a felső részbe beírtam ezt:

1
 (.*)

Az ablak aljában be kellett pipálni a “RE” kapcsolót, majd kattintottam a “Replace All” gombra.

Regexp használata Intype texteditorban

Regexp használata Intype texteditorban

Az eredménye ennek az, hogy minden olyan karakterlánc törlődött az URL-ek után, melyek space-szel kezdődött. A letakarított eredmény így nézett ki:

www.valami1.hu
www.valamisdf2.hu
www.valamiwie.com

Ez egy elég egyszerű kis leírás, de valakinek talán sok időt fog megspórolni, ha ilyen feladatba fut bele.

Regexp teszteléshez egyébként lehet használni pl. ezt az online szolgáltatást: Regular Expression Editor

Kapcsolódó bejegyzések:
  • Korábban már volt egy reguláris kifejezésekkel kapcsolatos cikk ( Reguláris kifejezések avagy regexp ), most egy online tesztelő eszközt szeretnék hozzá ajánlani …

  • Régebben már írtam egy cikket Intype editor címmel itt a lapon erről a remek programról, azóta is aktívan használom minden gépen.Nemrég megjelent egy új verz …

  • Korábban is volt már szó arról, hogy lehet 1-1 segédprogram használatával gyorsabban kódolni, a mindennapi feladatokat felgyorsítani. Pl. gondolok itt az alábbi …

  • A minap kellett valami olyan megoldást találnom, amely segítségével 2db, több ezer soros szöveges állományt össze tudtam volna hasonlítani (és olvasztanom lépése …

  • Használtam már korábban is ilyen cuccot és nagyon hasznosnak bizonyult. A lényege, hogy úgy lehet egy a neten látható (csak annak, aki a linket tudja) szövegszer …

A cikket beküldte: Harder (http://blog.harder.hu)

2 hozzászólás

  1. Harder says:

    Egy másik kód, szintén takarításhoz:

    1
    
    [([0-9])]

    Az ilyen listákból:

    1
    2
    3
    
    kategória1(3)
    kategória2(4)
    kategória3(2)

    szedi le a sorvégi zárójelet és a számokat:

    1
    2
    3
    
    kategória1
    kategória2
    kategória3
  2. Harder says:

    Ez is csak inkább példa illetve emlékeztető magamnak, hogy SEO backlink check kapcsán, amikor sok URL-t kapok melyek ugyanazon lapcsaládhoz tartoznak de nekem nincs rá szükségem, hogy szűrjem le…

    pl..

    ilyen jellegű a forrás:

    http://kisallat.lap.hu (1 db)
    http://kispaci.lap.hu (1 db)
    http://kismacska.lap.hu (1 db)
    http://kiskutya.lap.hu (2 db)
    http://masdomain.hu (1db)
    http://ujabbdomain.com (3db)
    http://kiskrokodil.lap.hu (1 db)
    http://kisvizilo.lap.hu (2 db)

    … és ezekből a sitewide linkek miatt van mondjuk 2000, akkor nekem csak arra lenne szükségem, hogy a lap.hu-s sorokat kiszedjem és lássam, melyek az egyéb linkjei.

    ilyenkor használom a leírás mintájára az alábbit a keresés/csere opció “mit” mezőjében:

    (.*).lap.hu(.*)

    A “mire” részt meg persze üresem hagyom.

    Így minden olyan sort töröl, amiben megtalálható a .lap.hu részlet, bármi is legyen előtte vagy utána.

Szólj hozzá
a Lista takarítása regexp segítségével c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>