Wir haben eine Spalte in der Datenbank mit Werten ähnlich wie "150 W 96 Th St" und "4514 282 Nd St". Wie Sie vielleicht schon bemerkt haben, gibt es ein Leerzeichen zwischen dem numerischen Straßennamen und dem Suffix "96 TH".Wie regexp_replace zu ersetzen nur die einfangende Gruppe und nicht die vollständige übereinstimmende Zeichenfolge
Ich versuche eine Postgresql-Abfrage zu schreiben, die diesen Speicherplatz entfernen wird. die Verwendung von folgendem:
SELECT regexp_matches('150 W 96 Th St', ' \d+()(?:St|Nd|Rd|Th) ')
ich:
{" "}
Zeigen, dass nur die Erfassungsgruppe zurückgegeben.
Allerdings, wenn ich
SELECT regexp_replace('150 W 96 Th St', ' \d+()(?:St|Nd|Rd|Th) ', '')
laufe ich
150 WSt
, wo der ganze passende String ersetzt wird.
Ich habe auch versucht,
SELECT regexp_replace('150 W 96 Th St', ' \d+()(?:St|Nd|Rd|Th) ', '\1')
, die ich dachte, dass nur die erste Capture-Gruppe ersetzen.
Was sollte ich noch versuchen?
Sie, Herr, sind ein Gentleman und ein Gelehrter. Klappt wunderbar. –