PostgreSQL SUBSTRING() Funktio säännöllisen lausekkeen esimerkillä

⚡ Älykäs yhteenveto

PostgreSQL SUBSTRING-esimerkkitracts ja palauttaa osan merkkijonosta käyttäen valinnaista aloituskohtaa ja pituutta, ja se myös vertaa tekstiä POSIX-säännölliseen lausekkeeseen löytääkseen kuvioita, kuten numeroita tai koodeja.

  • 📋 Syntaksi: substring( merkkijono [alusta] [pituudelle] ) palauttaa osan lähdemerkkijonosta.
  • 1️⃣ Paikka: Merkkien paikat alkavat luvusta 1, ja pituuden pois jättäminen jatkuu merkkijonon loppuun.
  • 🔎 Regex: SUBSTRING(merkkijono FROM-kuvio) esim.tracts ensimmäinen POSIX-säännöllistä lauseketta vastaava teksti.
  • 🧮 Grouping: Sulkeissa oleva ryhmä mallissa palauttaa vain osuman siepatun osan.
  • 🖥️ pgAdmin: Jokainen alimerkkijonokysely suoritetaan samalla tavalla pgAdmin-kyselyeditorissa.
  • 🤖 Tekoälyn apu: Tekoälyavustajat luovat ja selittävät säännöllisten lausekkeiden kaavoja tarkkojen alimerkkijonojen esimerkkeihintracseen.

PostgreSQL SUBSTRING-funktio säännöllisellä lausekkeella

Mikä on PostgreSQL Alimerkkijono?

PostgreSQL alimerkkijonofunktio auttaa sinua tekemään esimerkkejätract ja palauttaa osan merkkijonosta. Koko merkkijonon palauttamisen sijaan se palauttaa vain osan siitä, mikä on hyödyllistä koodien karsimisessa ja kiinteäleveyksisten kenttien lukemisessa.

Syntaksi

PostgreSQL osamerkkijonofunktio käyttää seuraavan syntaksin:

substring( string [from starting_position] [for length] )

parametrit

Seuraavia parametreja käytetään substring-funktion kanssa:

jono Lähdemerkkijono, jonka tietotyyppi on varchar, char, merkkijono jne.
Aloitusasento Valinnainen parametri. Se osoittaa paikan, jossa extracMerkkijonon suoritus alkaa. Jos jätät tämän parametrin pois, esim.traction alkaa kohdasta 1, joka on merkkijonon ensimmäinen merkki.
pituus Valinnainen parametri. Se ilmaisee, kuinka monta merkkiä on tarkoitus käyttää.tracmerkkijonosta. Jos jätät tämän parametrin pois, funktio extracts aloituskohdasta merkkijonon loppuun.

Esimerkit

Tässä esimerkissä haluamme tehdä ko.tracsanan neljä ensimmäistä merkkiä Guru99:

SELECT substring('Guru99' for 4);

Komento palauttaa seuraavan:

PostgreSQL Alimerkkijono

Emme määritelleet lähtöasemaa, joten entinentracalimerkkijonon määritys alkoi kohdasta 1. Neljä merkkiä esitettiintracpalauttaaksesi yllä olevan tuloksen.

Seuraava esimerkki näyttää, kuinka aloitussijainti määritetään:

SELECT substring('Guru99' from 1 for 4);

Komento palauttaa seuraavan:

PostgreSQL Alimerkkijono

Määrittelimme, että entinentracOsamerkkijonon osan tulisi alkaa kohdasta 1 ja neljän merkin tulisi olla esimerkkejätracTED.

Olkaamme extract 99 merkkijonosta Guru99:

SELECT substring('Guru99' from 5);

Komento palauttaa seuraavan:

PostgreSQL Alimerkkijono

Määrittelimme aloituspaikaksi 5. Koska esitettävien merkkien määrätracTediä ei määritelty, extraction juoksi merkkijonon loppuun.

Tässä on toinen esimerkki:

SELECT substring('Guru99' from 5 for 2);

Komento palauttaa seuraavan:

PostgreSQL Alimerkkijono

Aloitimme exäntraction kohdassa 5 ja 2 merkkiä oli extracTED.

Harkitse alla olevaa kirjataulukkoa:

PostgreSQL Osamerkkijono Kirja-taulukko

Haluamme saada karkean käsityksen kunkin kirjan nimestä. Voimme esimerkiksitracvain taulukon nimisarakkeen ensimmäiset 15 merkkiä:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Komento palauttaa seuraavan:

PostgreSQL Osamerkkijonon tulos

Meillä on nyt karkea käsitys jokaisen kirjan nimestä.

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

In PostgreSQL, voit esim.tracta-alimerkkijono, joka vastaa määritettyä POSIX-säännöllistä lauseketta. Tässä tapauksessa alimerkkijonofunktio käyttää seuraavaa syntaksia:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Tässä on selitys yllä olevista parametreista. Merkkijono on lähdemerkkijono, jonka tietotyyppi on varchar, char, merkkijono ja niin edelleen. matching_pattern on malli, jota käytetään merkkijonosta etsimiseen.

Esimerkit

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Komento palauttaa seuraavan:

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

Syötemerkkijonomme on Ikäsi on 22. Kuviossa etsimme numeerista kuviota; kun sellainen löytyy, alimerkkijonofunktio extracvain kaksi merkkiä.

Alimerkkijonojen yhdistäminen pgAdminilla

Katsotaanpa nyt, miten nämä toiminnot suoritetaan pgAdminilla. Kyselyt, jotka eivät tarvitse tietokantaa, voidaan suorittaa suoraan kyselyeditori-ikkunasta. Tee vain seuraavaa:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2) Napsauta pgAdminissa Kyselytyökalun kuvaketta.

Alimerkkijonojen yhdistäminen pgAdminilla

Kyselyn muokkausikkuna avautuu.

Vaihe 3) Kirjoita seuraava kysely editori-ikkunaan.

SELECT substring('Guru99' for 4);

Vaihe 4) Napsauta Suorita-kuvaketta suorittaaksesi kyselyn.

Alimerkkijonojen yhdistäminen pgAdminilla

Vaihe 5) Kyselyn suoritus on valmis. Sen pitäisi palauttaa seuraava:

Alimerkkijonojen yhdistäminen pgAdminilla

Esimerkki 2:

SELECT substring('Guru99' from 1 for 4);

Sen pitäisi palauttaa seuraavat tiedot:

Alimerkkijonojen yhdistäminen pgAdminilla

Tässä on seuraava esimerkki:

SELECT substring('Guru99' from 5);

Sen pitäisi palauttaa seuraavat tiedot:

Alimerkkijonojen yhdistäminen pgAdminilla

Esimerkki 3:

SELECT substring('Guru99' from 5 for 2);

Sen pitäisi palauttaa seuraavat tiedot:

Alimerkkijonojen yhdistäminen pgAdminilla

Suoritetaan nyt esimerkki käyttämällä Demo-tietokannan Book-taulukkoa:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2) Valitse vasemmalla olevasta navigointipalkista Tietokannat ja sitten Demo.

Alimerkkijonojen yhdistäminen pgAdminilla

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Vaihe 4) Napsauta Suorita-painiketta.

Alimerkkijonojen yhdistäminen pgAdminilla

Sen pitäisi palauttaa seuraavat tiedot:

PostgreSQL Osamerkkijonon tulos

Meillä on nyt peruskäsitys jokaisen kirjan nimestä.

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

Suorita sama pgAdminissa seuraavasti:

Vaihe 1) Kirjaudu sisään pgAdmin-tilillesi.

Vaihe 2) Napsauta Kyselytyökalu-kuvaketta.

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

Kyselyn muokkausikkuna avautuu.

Vaihe 3) Kirjoita seuraava kysely editori-ikkunaan.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Vaihe 4) Napsauta Suorita-kuvaketta suorittaaksesi kyselyn.

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

Sen pitäisi palauttaa seuraavat tiedot:

Osamerkkijonojen yhdistäminen säännölliseen SQL-lausekkeeseen

Lataa tässä opetusohjelmassa käytetty tietokanta

UKK

SUBSTR on SUBSTRING-funktion lyhyempi alias ja palauttaa osan merkkijonosta. SUBSTRING tukee myös SQL-standardin mukaisia ​​FROM- ja FOR-avainsanoja sekä POSIX-säännöllisiä lausekkeita, kun taas SUBSTR hyväksyy vain pilkulla erotetut sijainti- ja pituusargumentit.

PostgreSQL SUBSTRING on ykköspohjainen, joten ensimmäinen merkki on kohdassa 1, ei 0. Merkkijonon aloituskohdan 1 antaminen palauttaa merkkijonon ensimmäisestä merkistä eteenpäin.

Kun POSIX-mallia ei löydy, SUBSTRING palauttaa NULL-arvon tyhjän merkkijonon sijaan. Testaamalla tulosta IS NULL -metodilla voit käsitellä rivejä, joilla odotettua mallia ei ole.

Käytä säännöllistä lauseketta, joka tallentaa merkin jälkeisen osan. Esimerkiksi SUBSTRING(email FROM '@(.*)') palauttaa kaiken @-merkin jälkeisen osan, jolloin saat kunkin sähköpostiosoitteen verkkotunnusosan.

Käytä SUBSTRING-funktiota, kun tarvitset ensimmäisen vastaavan tekstin yksinkertaisena arvona. Valitse regexp_matches(), kun haluat palauttaa jokaisen vastaavan tekstin tai useita sieppausryhmiä taulukkona, koska SUBSTRING palauttaa vain ensimmäisen vastaavan tekstin.

Tekoälyavustajat, kuten GitHub Copilot, muuttavat selkokielisen kuvauksen POSIX-malliksi, selittävät, mitä kukin merkkijono vastaa, ja ehdottavat testimerkkijonoja, mikä vähentää kokeilua ja erehdystä alimerkkijonojen rakentamisessa, esim.traction kyselyt.

Kyllä. Kuvaile haluamasi osa tekstistä, niin tekoälyavustaja luonnostelee SUBSTRING-kutsun oikeilla kohdilla tai säännöllisellä lausekkeella, jonka voit suorittaa ja tarkentaa pgAdminissa.

Kyllä, POSIX SUBSTRING-haun kirjainkokoriippuvainen on oletusarvoisesti. Jos haluat haun olevan kirjainkokoriippumaton, pienennä molempien syötteiden arvoa, esimerkiksi SUBSTRING(lower(nimi) FROM lower(kuvio)), jolloin isoja ja pieniä kirjaimia käsitellään samalla tavalla.

Tiivistä tämä viesti seuraavasti: