PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak dopasować ostatnie dwa słowa w zdaniu w PostgreSQL?

Zamiast używać REGEXP_MATCHES który zwraca tablicę dopasowań, może być lepiej przy użyciu SUBSTRING co da ci dopasowanie jako TEXT bezpośrednio.

Używając prawidłowego wzorca, który udostępnił @Abelisto, możesz to zrobić:

SELECT SUBSTRING('My name is Harry Potter' FROM '\w+\W+\w+$')

Zwraca Harry Potter w przeciwieństwie do {"Harry Potter"}

Zgodnie z komentarzem @Hambone, jeśli jedno ze słów na końcu zawiera znaki interpunkcyjne, takie jak apostrof, warto rozważyć użycie następującego wzorca:

SELECT SUBSTRING('My name is Danny O''neal' FROM '\S+\s+\S+$')

Powyższe poprawnie zwróciłoby Danny O'neal w przeciwieństwie do po prostu O'neal



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt powłoki do wykonywania poleceń pgsql w plikach

  2. Jaki jest MySQL odpowiednik funkcji EXPLAIN ANALYZE w PostgreSQL?

  3. Porównanie systemów równoważenia obciążenia dla PostgreSQL

  4. Czy PostgreSQL może wykonać łączenie między dwiema procedurami składowanymi SQL Server?

  5. postgresql - zamień wszystkie wystąpienia ciągu w polu tekstowym