Ergebnis 1 bis 3 von 3

Mit Regex mehrere Dateien umbenennen

  1. #1 Zitieren
    Drachentöter Avatar von Arthonius
    Registriert seit
    Jan 2006
    Beiträge
    4.067
    Hallo zusammen,



    ich bin noch nicht ganz versiert im Umgang mit Regex, obwohl ich schon einige erfolgreiche Versuche gemacht habe. Nun stehe ich jedoch vor einer größeren Herausforderung, die ich einfach alleine nicht "geschafft" kriege.



    Ich möchte in mehreren Seiten einer SQL-Datenbank (Mediawiki) Eintragungen ändern. Ein Beispiel, aus:



    Code:
    {| class="wikitable" style="float:right; margin-left: 10px;"
    
    ! colspan="2" |
    
    ==Neuer Weg 63==
    
    |-
    
    | colspan="2" |{{#display_map:
    
    | Title = Neuer Weg 63
    
    | Text = Gebäude in Norden
    
    | center = 53.591551234842996, 7.212411472895823
    
    | circles = 53.591551234842996, 7.212411472895823 :8
    
    | zoom = 18
    
    | width = 300px
    
    | height = 300px
    
    }}
    
    |-
    
    ! colspan="2" |Basisdaten
    
    |-
    
    |Entstehungszeit
    
    |nach 1931
    
    |-
    
    |Erbauer
    
    |unbekannt
    
    |-
    
    |Bauweise
    
    |Ziegelsteinbau
    
    |-
    
    |Erhaltungszustand
    
    |erhalten
    
    |-
    
    |Genaue Lage
    
    |[[Neuer Weg]] 63
    
    26506 Norden
    
    |}


    soll



    Code:
    {{Infobox Gebäude
    
    |Entstehungszeit=nach 1931
    
    |Erbauer=unbekannt
    
    |Bauweise=Ziegelsteinbau
    
    |Erhaltungszustand=erhalten
    
    |Genaue Lage=[[Neuer Weg]] 63
    
    26506 Norden
    
    |center = 53.591551234842996, 7.212411472895823
    
    |circles = 53.591551234842996, 7.212411472895823 :8
    
    |zoom=18
    
    }}


    werden.



    Wie kann ich mit Regex (oder anderen Möglichkeiten) am einfachsten möglichst viele Seiten gleichzeitig in das zweitgenannte Schema umwandeln?



    Vielen Dank für (hoffentlich) kommende Antworten!!!
    Arthonius ist offline

  2. #2 Zitieren
    Tieftöner Avatar von Lookbehind
    Registriert seit
    Dec 2007
    Beiträge
    15.176
    Wo/worin willst du das denn ändern? Direkt in der Datenbank? Als Text-Datei? In irgendeinem speziellen Format? Ich muss gestehen, dass ich auf den ersten Blick die Formate nicht ganz nach vollziehen kann. Aber das tut der Sache nicht unbedingt einen Abbruch.

    Das geht sicher auch mit RegEx, allerdings halte ich das in diesem Fall für zu Fehleranfällig. Ich würde vielleicht eher darauf bauen, dass da ja immer Key/Value Paare vorhanden sind, und darauf filter und neu einrichten. Wenn du das direkt aus der SQL-Datenbank raus holst, könnte man über ein passendes SELECT-Statement auch direkt die passende Form bauen lassen. Dafür müsste man halt wissen, wie die Spalten heißen, und wie die DB generell aufgebaut ist.

    Kurz: Wir bräuchten mehr Infos.
    Lookbehind ist offline

  3. #3 Zitieren
    Demigod Avatar von Sumpfkrautjunkie
    Registriert seit
    Nov 2004
    Ort
    München
    Beiträge
    9.091
    Du Suchst vermutlich nach Capturing Groups: https://www.regular-expressions.info/refcapture.html
    und die Referenzierungen dieser beim Ersetzen: https://www.regular-expressions.info...cebackref.html

    Je nach Sprache ist es etwas unterschiedlich in der Syntax, aber im Grunde kannst du (JS Beispiel)

    Eine Gruppe festlegen mit () und beim Ersetzen darauf referenzieren $1

    Code:
    `|Bauweise
    
    |Ziegelsteinbau
    
    |-
    
    |Erhaltungszustand
    
    |erhalten
    
    |-`.replace(/[\w\W]*\|Erhaltungszustand[^|]*\|([^\n]*)[\w\W]*/g, '|Erhaltungszustand=$1')
    Sumpfkrautjunkie ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •