Hallo,
ich möchte in JOSM Nodes / Ways / Relations finden, in denen ein Schlüsselwert NICHT einem definierten Muster etspricht, z.B.
"phone"-"+49*"
wobei das Minus-Zeichen (-) das in den “Kombinationen” angebene Zeichen für “Logische Negation” ist. Sobald ich aber für die Syntax “Regulärer Ausdruck” wähle, kommt eine Fehlermeldung.
Wie mache ich es richtig?
Eine RegEx für die Regel “fängt mit Plus Vier Neun an und danach kommt Beliebiges” (das meinst du wahrscheinlich) lautet so:
^\+49
^ heißt “am Anfang”.
ein unmaskiertes Pluszeichen heißt in RegEx “eines oder viele davon” und ergibt ganz am Anfang keinen Sinn. Wenn du wörtlich das Pluszeichen meinst, muss ein \ davor.
das, was du mit dem Stern vermutlich meinst, nämlich “beliebig viele beliebige Zeichen” heißt in RegEx .* (Punkt = beliebiges Zeichen, Stern = beliebig viele Vorkommen (inkl. null) des davorstehenden Teilausdrucks). Aber am Schluss kannst du dir das sparen, weil es reicht, wenn die RegEx auf einen Teilstring matcht.
Bei mir findet diese Suche alle Objekte, die das Tag phone haben aber nicht mit dem +49 beginnend. Das wolltest Du doch, oder?
Edit: Das geht auch noch einfacher ganz ohne regex:
Du hast recht, es funktioniert wenn der node hochgeladen ist (was ja normalerweise der Fall ist). Für meinen Test hatte ich gedacht, dass eine lokale Änderung ausreichend ist. Das genügt aber nicht …
Danke!