Overpass Turbo - Straßen die mit einem bestimmten Buchstaben anfangen

Hallo,
ich kriege es nicht hin: wenn ich in Overpass Turbo Straßen angezeigt haben möchte, die mit K beginnen. Was muss ich da eingeben?

Und gibt es irgendwo eine Hilfe die ich aufsuchen kann, die mir hilft das selber rausfinden zu können? Kann doch nicht sein, dass man so was einfaches nicht selber hinbekommt…

Das sollte so gehen: http://overpass-turbo.eu/s/u7q

Genau so.
Das findest du in der Overpass-Dokumentation im Wiki:
https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Key.2Fvalue_matches_regular_expression_.28.7E.22key_regex.22.7E.22value_regex.22.29

Danke für die Abfrage.

Das im Wiki habe ich auch gefunden. Und zwar das hier:

node[~"^addr:.*$"~"^Foo"];

Aber das muss man ja noch anpassen. Da fangen dann die Probleme an und ich habe es nicht hinbekommen. :confused:

Naja, das ist nicht ganz der richtige Link. Schau mal hier im zweiten Punkt "finds anything that starts with “Foo” - exakt deine Problemstellung.

https://wiki.openstreetmap.org/wiki/Overpass_API/Overpass_QL#Value_matches_regular_expression_.28.7E.2C_.21.7E.29

Moin,

vielleicht hilft zum etwas einfacheren Einstieg auch der Wizard und dessen Doku https://wiki.openstreetmap.org/wiki/Overpass_turbo/Wizard weiter.

highway=* and name~"^K"

Grüße, Georg

Ja, dazu müsste man sich mit “Regular Expression” auseinandersetzen … was manchmal auch gestandene Programmierer zur Verzweiflung bringt :laughing:

Kurz erklärt: dieser Ausdruck (im kompletten inkl overpassisch) sagt nichts anderes aus, als dass du einen Punkt suchst, wo egal in welchem addr-Subtag der Wert mit Foo beginnt.

Kurz erklärt:

  • ~ im Gegensatz zu = sagt aus, dass du einen regulären (manchmal auch ungefähren) anstatt einem istgleich Vergleich machen möchtest
  • ^ sagt aus, dass der Wert den du vergleichen möchtest, am Anfang des Wertes stehen muss
  • K sagt aus, dass du nach mit einem großen (!!!) K vergleichen möchtest, in Verbindung mit ^ eben am Anfang eines Wertes

Eine nett geschriebene Einführung in RegEx ist hier: https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/

Und ja, es lohnt sich, das zu lernen. Viele Umbenenn-Tools etcetera arbeiten mit RegEx, die einfach ein sehr mächtiges System sind, Zeichenketten oder Teile davon nach allgemeinen Kriterien zu selektieren.

–ks

Nicht vergessen: Overpass API nutzt POSIX Regular Expressions, d.h. nicht alles was dort beschrieben wird, wird auch hier unterstützt. Das kann man sich grob als verschiedene Dialakte vorstellen, die leicht voneinander abweichen können. Insbesondere so Sachen wie Negative Lookaheads gehen nicht. Wer sich partout gar nichts darunter vorstellen kann, darf gerne hier vorbeischauen: https://github.com/drolbr/Overpass-API/issues/332#issuecomment-284742800

Weiterhin müssen die ganzen Backslashes "" in den regulären Ausdrücken zusätzlich nochmal Escaped werden. Ich glaube, das steht auch irgendwo im Wiki.

Oder wenn man des Englischen mächtig ist, dann evtl auch https://www.regular-expressions.info/, damit habe ich es damals “gelernt”.