Hvordan trekke ut en PowerShell-delstreng fra en streng

26. mai 2021 40320 Visninger powershell-understreng

I PowerShell er en delstreng en del av en streng. Du kan opprette en PowerShell-delstreng fra en streng ved å bruke enten substrin g, dele metoder.





Et eksempel på en streng er subdomain.domain.com . Understrengene til subdomain.domain.com er underdomene , domene , og med .



I denne S-sonen vil jeg lære deg alt du trenger for å lære om PowerShell Substring.

Spesifikt vil du lære hvordan du trekker ut delstrenger fra strenger ved å bruke Understreng og Dele Metoder . I tillegg vil du lære om PowerShell Dele Operatør .



Til slutt vil du lære hvordan du bryter en PowerShell-streng i understrenger og bruker Understreng Metode for å trekke ut understrengene.



Bla gjennom innleggsemner

Hvordan trekke ut en PowerShell-delstreng med Understreng Metode

Hvordan trekke ut en PowerShell-delstreng med delstrengmetode

I denne første delen vil du lære hvordan du trekker ut delstrenger fra en streng med Understreng Metode .



Jeg er klar over at bruk av understrenger som en del av en streng i samme setning som Understreng Metode kan være forvirrende. For klarhetens skyld refererer delstrenger som en del av en streng til å trekke ut en del av en streng. For eksempel trekke ut understrengen, usa fra strengen usa.itechguides.com. Tvert imot Understreng Metode refererer til PowerShell Understreng Metode brukes til å utføre oppgaven.

Jeg vil starte denne delen ved å forklare syntaksen til Understreng Metode.



Syntaks for PowerShell Understreng Metode

Syntaksen til Understreng Metode:

|_+_|

For å sikre at du forstår de resterende delene av denne delen, er det ekstremt viktig at du legger merke til min forklaring av disse syntaksene.

Som du kan se fra syntaksen, når du spesifiserer Understreng Metode av en streng, skriver du inn startindeks OG lengde .

De int i syntaksen indikerer at startindeks og lengde er tall (heltall)

De startindeks er det første tegnet i delstrengen du vil trekke ut (teller fra venstre til høyre og starter fra å legge til 1 til resultatet av Oversikt over – bortsett fra det første tegnet).

Videre har lengde er antall tegn du vil trekke ut, fra 1 og tellende fra det første tegnet i understrengen du vil trekke ut.

I neste avsnitt vil jeg forklare Oversikt over Metode og hvordan du bruker den til å bestemme startindeks og lengde . Hvis du fortsatt er forvirret av mitt forsøk på å forklare dette ganske komplekse konseptet startindeks og lengde , ikke bli motløs – det vil bli tydeligere etter hvert som du går videre i veiledningen.

For å hjelpe deg å forstå dette konseptet, vil neste avsnitt diskutere Oversikt over og LastIndexOf Metoder.

Hvordan identifisere en PowerShell-delstrengposisjon med Oversikt over Og LastIndexOf Metoder

Da jeg forklarte syntaksen til Understreng Metode, sa jeg at startindeks av PowerShell Understreng Metode er det første tegnet i understrengen du vil trekke ut (bestemt ved å legge til 1 til resultatet av Oversikt over verdi for den understrengen).

I denne delen vil jeg bruke Oversikt over og LastIndexOf Metoder av en PowerShell-streng for å vise deg hvordan PowerShell bestemmer plasseringen av understrengtegn i en streng.

For å illustrere, la oss undersøke indeksposisjonen til den første bokstaven u in usa.itechguides.com – ved å kjøre kommandoen nedenfor...

|_+_| De Oversikt over Metoden finner den første forekomsten av en streng (teller fra venstre til høyre og starter fra null)

Resultatet er null (0)...

Hvorfor er dette viktig? Glad du spurte!

Du husker startindeks OG lengde i syntaksen til PowerShell Understreng Metode ?

|_+_|

Hvis indeksposisjonen til bokstaven u in usa.itechguides.com er null (o), ifølge Oversikt over Metode – det betyr at hvis vi ønsker å trekke ut tegn som starter fra bokstaven u, vår startindeks vil være 0 – siden det er det første tegnet i strengen.

Unntaket fra regelen om å legge til 1 til resultatet av Oversikt over kommando for å bestemme startindeks er det første tegnet i strengen. De startindeks av det første tegnet i en streng vil alltid være null (0).

Så fantastisk!

La oss nå legge til et nytt lag til dette. Hva om vi ønsker å finne siste forekomst av et tegn i en streng?

I stedet for å bruke Oversikt over Metode , vil vi bruke LastIndexOf Metode . Denne kommandoen vil bestemme plasseringen av den siste forekomsten av bokstaven u i strengen, usa.itechguides.com :

|_+_| LastIndexOf finner den siste forekomsten av strengen (teller fra venstre til høyre og starter fra null)

Resultatet er 10…

Slik identifiserer du en PowerShell-delstrengposisjon med metodene IndexOf og LastIndexOfÅ ha denne kunnskapen om hvordan PowerShell bestemmer plasseringen av delstrengtegn i en streng, vil hjelpe deg med å manipulere PowerShell-strenger – uansett kompleksitet.

Hvordan trekke ut en PowerShell-delstreng til venstre for en streng

I denne delen lærer du hvordan du trekker ut en delstreng fra venstre for en streng. Jeg vil vise deg et eksempel som kan brukes i produksjonsmiljøer.

Forutsatt at du administrerer et Active Directory-domene med flere underdomener. Underdomenene er navngitt med et landnavn på tre bokstaver. Eksempler på underdomenene dine er USA.itechguides.com , jpn.itechguides.com .

Videre, la oss anta at du skriver et PowerShell-skript som krever at du kjører betingede kommandoer basert på landets underdomenenavn – innenfor ditt Active Directory-domene.

I denne delen vil jeg lære deg hvordan du trekker ut underdomenet BRUKER , fra USA.itechguides.com .

La oss starte med å lagre underdomenet, BRUKER itechguides.com i en variabel kalt underdomene .

|_+_|

Følg trinnene nedenfor for å pakke ut BRUKER , fra USA.itechguides.com :

  1. Skriv inn et punktum (.) ved siden av variabelen underdomenet er lagret, etterfulgt av ordet Understreng . Til slutt legger du til en åpningsbrakett...
|_+_| Etter å ha kommet inn Understreng , kan du også trykke på Tab-tasten på tastaturet. Når du trykker på Tab-tasten, vil PowerShell legge til åpningsparentesen (.
  1. Deretter skriver du inn startindeks etterfulgt av et komma (,). Før du gjør dette, husk at vi ønsker å trekke ut USA. I dette tilfellet, siden vi ønsker å trekke ut fra det første tegnet, vårt startindeks er null (0). Kommandoen vil nå se slik ut:
|_+_|
  1. Til slutt, skriv inn lengde , etterfulgt av den avsluttende parentesen, ). I dette eksemplet er lengde (teller fra tallet ved siden av startindeks ) er 3 – den startindeks er 0, å legge til 1 til 0 gir 1.

    Hvis du teller fra U – USA har 3 tegn – noe som gjør lengde totalt 3 tegn.

    Her er det endelige manuset...
|_+_|

For å se kommandoen i aksjon, kjør kommandoen nedenfor, først...

|_+_|

Dette lagrer strengen, USA.itechguides.com i PowerShell-variabelen, $underdomene . Kjør deretter kommandoen som trekker ut USA-delstrengen fra strengen, USA.itechguides.com .

|_+_|

Som forventet er resultatet USA!

Hva om du vil trekke ut det overordnede domenet, itechguides.com fra USA.itechguides.com ? Hva blir vår startindeks og lengde ?

For å bestemme din startindeks , kjør først Oversikt over kommandoen ved å bruke den første punktum (.) som input.

|_+_|

Resultatet er 3…

Hvordan trekke ut en PowerShell-delstreng til venstre for en streng

I henhold til min tidligere forklaring, for å bestemme startindeks fra resultatet av Oversikt over kommando, legg til 1. Hvis vi legger til 1 til 3, vil vår startindeks er 4.

Neste, for å bestemme lengde , begynn å telle fra 1, fra det første tegnet i strengen du vil trekke ut. Deretter stopper du ved det siste tegnet du vil trekke ut fra strengen.

Husk at vi ønsker å trekke ut itechguides.com fra USA.itechguides.com ?

Teller fra det første tegnet i strengen vi ønsker å trekke ut (i), begynner med 1, den lengde er 15 ( itechguides.com er 15 tegn).

Basert på disse verdiene, kommandoen som trekker ut PowerShell-delstrengen, itechguides.com fra USA.itechguides.com er…

|_+_|

Her er resultatet, itechguides.com !

Til slutt, for å hjelpe til med å forenkle dette ganske forvirrende konseptet startindeks , Oversikt over , og lengde , her er et sammendrag:

  1. De startindeks av det første tegnet i en PowerShell-streng vil alltid være null (0)
  2. For å bestemme startindeks av en understreng, legg til 1 til Oversikt over kommando resultat
  3. Til slutt, den lengde av PowerShell-delstrengen du vil trekke ut er det totale antallet (starter fra 1) og teller fra det første tegnet i understrengen til det siste tegnet i understrengen.

Hvordan trekke ut en PowerShell-delstreng før og etter et spesifisert tegn

I denne delen vil jeg lære deg hvordan du trekker ut PowerShell-delstrengen før og etter et spesifisert tegn.

For å illustrere dette, la oss gå tilbake til underdomenet vårt...

|_+_|

Si at jeg vil trekke ut delstrengen før annonse etter første punktum (.). Faktisk vil jeg trekke ut USA (delstrengen før det angitte tegnet).

I tillegg vil jeg trekke ut itechguides.com (delstrengen etter det angitte tegnet).

Det første trinnet er å bruke Oversikt over Metode for å bestemme plasseringen av referansetegnet. Kommandoen nedenfor lagrer posisjonen til referansetegnet i en variabel kalt refcharacter .

|_+_|

Deretter bruker du understreng Metode for å trekke ut delstrengen før referansetegnet.

|_+_|

Her er resultatet…

Til slutt, bruk følgende PowerShell understreng Metode for å trekke ut delstrengen etter referansetegnet

crunchyroll bruk gjestepass
|_+_|

Som forventet trekker resultatet ut delstrengen etter perioden, som er itechguides.com !

Hvordan trekke ut en PowerShell-delstreng før og etter et spesifisert tegn

Hvordan trekke ut en PowerShell-delstreng mellom 2 tegn

I denne delen vil jeg lære deg hvordan du trekker ut itechguides fra USA.itechguides.com . I dette eksemplet vil jeg trekke ut en PowerShell-delstreng mellom 2 tegn.

De to tegnene i dette eksemplet er første og siste punktum (.). Skriptet krever 3 kommandoer.

I den første kommandoen bruker vi Oversikt over Metode for å bestemme posisjonen til det første referansetegnet (.). Lagre deretter resultatet i en variabel kalt førsteref .

|_+_|

Deretter bruker vi LastIndexOf Metode for å bestemme plasseringen av det siste referansetegnet. Resultatet lagres i lastref variabel.

|_+_|

Til slutt, for å trekke ut PowerShell-delstrengen, itechguides mellom 2 tegn (punktene), kjør kommandoen nedenfor...

|_+_|

I kommandoen la vi til 1 til resultatet av Oversikt over kommando. I dette eksemplet, 3, gir totalt 4.

Dette gjør vår startindeks Fire.

I tillegg i PowerShell understreng Metode , brukte vi lengde som $lastref-4 .

Fra våre tidligere kommandoer, $lastref er variabelen vi lagret resultatet av LastIndexOf kommando.

Resultatet er 15. Å fjerne 4 fra 15 gjør vår lengde elleve.

Resultatet fra den siste kommandoen er itechguides !

kule admin-kommandoer roblox

Hvordan trekke ut en PowerShell-delstreng med splittmetode

Hvordan trekke ut en PowerShell-delstreng med splittmetode

I den første delen av denne veiledningen diskuterte jeg hvordan du trekker ut en PowerShell-delstreng med Understreng Metode . I denne delen lærer du hvordan du trekker ut PowerShell-delstrengen med Dele Metode .

Som vanlig vil jeg starte denne delen med syntaksen til PowerShell Dele Metode .

Syntaks for PowerShell Dele Metode

Syntaksen til Dele Metoden for å trekke ut en PowerShell-delstreng er:

|_+_|

Skilletegnet er et hvilket som helst tegn du vil bruke til å dele PowerShell-strengen i individuelle understrenger.

Delstrengposisjonen plassert i parentesen [] brukes til å velge en spesifikk delstreng du vil returnere fra strengene.

Slik bruker du flere skilletegn med PowerShell Split

Som sett i syntaksen til PowerShell Dele Metode , tillater den bare én skilletegn. Men hvis du vil dele delstrenger fra en streng med flere skilletegn, må du bruke PowerShell Dele Operatør , i stedet.

Syntaksen til PowerShell Dele Operatøren er…

|_+_|

Hvis du vil bruke flere skilletegn, lagrer du først strengen i en variabel – i dette eksemplet, $string. Bruk deretter den automatiske pipeline-variabelen $_ for å legge til flere skilletegn som vist nedenfor:

|_+_|

Vi kan for eksempel dele dette opp Active Directory Distinguished Name , OU=LON,OU=DEV,DC=ITECHGUIDES,DC=COM – ved å bruke de to skilletegnene, =, og ,.

Først, la oss lagre DN i en variabel kalt $ADDN ...

|_+_|

Deretter, for å dele strengen ved å bruke =, og , skilletegnene, bruk kommandoen nedenfor:

|_+_|

Bingo, den siste kommandoen deler strengen i individuelle PowerShell-delstrenger!

I neste avsnitt vil du lære hvordan du returnerer en av understikkene.

Hvordan trekke ut en PowerShell-delstreng med Dele Metode

I den siste delen så du hvordan du deler en streng i individuelle understrenger ved å bruke PowerShell Dele Operatør . Her er den siste kommandoen...

|_+_|

Kommandoen deler strengen i sine individuelle understrenger.

Hvordan trekke ut en PowerShell-delstreng med splittmetode

Da jeg diskuterte syntaksen til Dele Metoden for å trekke ut en PowerShell-delstreng er at jeg inkluderte en []-parentes som inneholder posisjonen til understrengen du vil returnere:

|_+_|

PowerShell nummererer posisjonene til delstrenger fra null (0). Så, gå tilbake til Active Directory DN-eksemplet – se skjermbildet nedenfor – den første delstrengen OU er i posisjon null (0), LON er i posisjon 1, og så videre.

Hvordan trekke ut en PowerShell-delstreng med splittmetode

Så for å returnere LON, vil vi omslutte den siste kommandoen i parentesen [1]. I dette tilfellet, en er posisjonen til delstrengen vi ønsker å returnere.

Her er kommandoen...

|_+_|

Her er resultatet av kommandoen:

Alternativt kan du lagre resultatet av kommandoen med Dele Operatør inn i en variabel.

|_+_|

Deretter returnerer du hvilken som helst av delstrengene ved å omslutte delstrengposisjonen i parentesen []. For å returnere LON, bruker vi for eksempel kommandoen nedenfor:

|_+_|

Resultatet er det samme som forrige kommando uten variabelen...

Hvordan trekke ut en PowerShell-delstreng med splittmetode

Hvordan trekke ut det siste elementet i en delstreng med PowerShell Split

Hvis du vil returnere det første eller siste elementet (tegn) i en delstreng, kan du bruke samme prinsipp fra vårt siste eksempel.

Mens jeg undersøkte dette emnet, snublet jeg over dette stackoverflow.com tråd. Brukeren har en streng vist nedenfor:

|_+_| StackOverflow-spørsmålet forklarer at strengen, 0.3.1-15-g3b885c5 midler Tag-CommitDistance-CommitId . Så 0.3.1 er stikkord , 15 er CommitDistance , og g3b885c5 er CommitId .

Spørsmålet er å returnere den første delen av strengen, 0.3.1 – ifølge denne brukeren, kalt stikkord . I tillegg vil brukeren returnere den siste delen av strengen, g3b885c5, kalt CommitId .

Det første trinnet er å lagre strengen i en variabel (dette er valgfritt, men gjør generelt livet enklere).

|_+_|

Deretter bruker du Dele Metode for å dele strengen i PowerShell-delstrenger ved å bruke - som skilletegn. Nok en gang, for å gjøre det enkelt for meg å forklare, vil jeg lagre resultatet i en annen variabel...

|_+_|

For å se resultatet av den siste kommandoen, kjør $TccSubstrings variabel alene.

|_+_|

Her er det…

Basert på våre tidligere eksempler i denne delen, for å trekke ut stikkord (den første understrengen), bruk kommandoen nedenfor:

|_+_|

Til slutt, for å trekke ut CommitId (den siste understrengen), bruk kommandoen nedenfor...

|_+_|

Og her er resultatene...

Hvordan trekke ut det siste elementet i en delstreng med PowerShell Split

Merk at du også kan løse dette problemet ved å kjøre en enkelt kommando...

|_+_|

Og her er det samme resultatet...

Det er ingen magi i dette, alt jeg gjorde var å kombinere alle kommandoene til én kommando!

Slik deler du streng og fjerner tomme oppføringer med PowerShell Split

I dette siste eksemplet vil jeg vise deg hvordan du deler en streng med tomme mellomrom (eller oppføringer) i understrenger. Fjern deretter de tomme plassene i sluttresultatet.

I en annen stackoverflow.com tråd, la en bruker denne strengen lagret i en variabel:

|_+_|

Brukeren brukte deretter Dele Metode for å dele strengen i individuelle understrenger.

|_+_|

Ifølge brukeren (og dette er åpenbart), er problemet at resultatet har mellomrom.

Personen som la ut dette spørsmålet ønsket at mellomrommene skulle fjernes fra understrengene. Det er flere løsninger, men en rask måte er å sende utdataene fra split-kommandoen til Hvor-objekt .

Dette er høflighet av Rynant . Her er kommandoen...

|_+_|

Og her er resultatet...

Det er det, vår oppdaterte PowerShell-delstrengartikkel! Jeg håper du syntes det var nyttig.

Hvis du synes denne artikkelen var nyttig, vennligst stem Ja til spørsmålet Var dette innlegget nyttig nedenfor.

Alternativt kan du stille et spørsmål, legge igjen en kommentar eller gi mer tilbakemelding med Legg igjen et svar-skjemaet på slutten av denne siden.

Til slutt, for flere PowerShell tech S Zones, besøk vår Windows PowerShell How-To guide-side. Du kan også finne vår Work from Home-side veldig nyttig.

Referanser og videre lesning

  1. Om Split
  2. String.Substring Metode
  3. Om operatører
  4. Om metoder
  5. String.Split-metode