2017-05-04 1 views
1

Ich habe die beiden folgenden URL Suchbegriffe:Wie entferne ich das Pluszeichen mit Regex in Postgres?

?fbad_id=6073971598331 

?fbad_id=+6073971598331 

Und ich versuche es mit dem folgenden zu dekodieren,

substring("search", '.*[?&]fbad_id=([^$&]*)') as fbad_id 

Aber wie ich den Code aktualisieren kann auch auf das Pluszeichen zu entfernen, wenn es ist dort?

+0

Es gibt einen Fehler in hier. '+' nach '=' wird als Quantifizierer fungieren. – Rahul

+2

Sie haben Recht! Ich habe meinen schlechten Versuch eingefügt, es zu reparieren. =) @Rahul – fbonawiede

+0

Also, was ist deine Frage jetzt? – Rahul

Antwort

0

Sie können eine [+]? verwenden 1 oder 0 + Symbole nach = zum Spiel:

select substring('?fbad_id=+6073971598331' from '.*[?&]fbad_id=[+]?([^&]*)'); 

Sehen Sie ein online PostgreSQL demo.

Muster Details:

  • .* - alle 0+ Zeichen, so viele wie möglich, bis zu dem letzten Auftreten der nachfolgenden Subpattern
  • [?&] - ein ? oder & Symbol
  • fbad_id= - ein fbad_id= Teilstring
  • [+]? - eins oder null + Symbole
  • ([^&]*) - Gruppe 1 Matching irgendwelche 0+ Zeichen anders als & Capturing (da [^...] eine negierte Zeichenklasse ist)
+0

Danke! Das hat es gelöst! – fbonawiede

+1

Vielen Dank! Entschuldigung, dass ich ein Neuling bin, ich habe Stackoverflow schon eine Weile benutzt, aber ich habe noch nie eine Frage gestellt. – fbonawiede

Verwandte Themen