sql >> Database >  >> RDS >> PostgreSQL

Postgresql - Hoe extraheer ik het eerste voorkomen van een subtekenreeks in een tekenreeks met behulp van een patroon voor reguliere expressies?

U kunt regexp_matches() . gebruiken in plaats daarvan:

update data1
  set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1];

Omdat er geen extra vlag wordt doorgegeven, regexp_matches() retourneert alleen de eerste overeenkomst - maar het retourneert een array, dus u moet het eerste (en enige) element uit het resultaat kiezen (dat is de [1] deel)

Het is waarschijnlijk een goed idee om de update te beperken tot alleen rijen die in de eerste plaats overeenkomen met de regex:

update data1
  set full_text = (regexp_matches(full_text, 'I [0-9]{1,3}'))[1]
where full_text ~ 'I [0-9]{1,3}'


  1. mysql-groepering per week

  2. `pg_tblspc` ontbreekt na installatie van de nieuwste versie van OS X (Yosemite of El Capitan)

  3. SSIS-pakket mislukt met fout Als 64-bits stuurprogramma niet is geïnstalleerd, uitvoeren in 32-bits modus

  4. De standaardpoort van mysql wijzigen van 3306 naar 3360