RegEx: replace . with -

  • Hi,


    bin nicht gerade der RegExperte (oh, Wortwitz :o) und hab mich auch schon ohne Erfolg an http://gskinner.com/RegExr/ probiert. Porblem ist folgendes:


    Ich habe eine HTML-Datei mit IDs wie:

    HTML
    1. <span id="listing0.title.moreinfo">bla</span>


    Es gibt aber auch IDs, in denen kein Punkt vorkommt:

    HTML
    1. <span id="listing0">bla</span>


    Meine Frage:
    Wie kann ich alle "." in den ID-Strings durch "-" ersetzen? Die IDs ohne Punkt sollen unverändert bleiben.


    [edit]
    Finden tu ich die Einträge übrigens, aber das hilft mir nicht viel :D. Geht sicher auch einfacher, aber das is meine derzeitige Lösung:

    Code
    1. /id="([^']+)"/gi


    [/edit]

    Wird das Internet eigentlich leichter, wenn man sich da was runterlädt?!

    Edited 4 times, last by mjx_biz ().

  • glaub nicht, dass das was du willst geht (zumindest nicht mit diesem tool). ne begründung hab ich dafür auch, du kannst bei einem quantifier mit der replace group immer nur auf den letzten string zugreifen der gematcht wurde (ich hoffe das war jetzt so halbwegs verständlich)


    eine möglichkeit wäre den replacer eingie male drüber laufen zu lassen mit ettwas ähnlichem wie:
    suche:

    Code
    1. (id=")([\w\d-]+)(\.)([\w\d\.]+")


    replace

    Code
    1. $1$2-$4


    aus was schöneres oder besseres bin ich auf die schnelle nicht gekommen, ich hoffe es hilft dir

  • Das mit den Groups is mir beim Herumprobieren aufgefallen, hab allerdings auf eine Lösung gehofft :D.


    Mehrere Durchläufe sind vielleicht eine Option, danke auf jeden Fall =)!

    Wird das Internet eigentlich leichter, wenn man sich da was runterlädt?!