Kā no virknes izvilkt PowerShell apakšvirkni

2021. gada 26. maijs 40320 Skati powershell-apakšvirkne

Programmā PowerShell apakšvirkne ir virknes daļa. Varat izveidot PowerShell apakšvirkni no virknes, izmantojot vai nu apakšvirsraksts g, sadalīt metodes.





Virknes piemērs ir apakšdomēns.domēns.com . Apakšvirknes apakšdomēns.domēns.com ir apakšdomēns , domēns , un ar .



Šajā S zonā es jums iemācīšu visu, kas jums nepieciešams, lai uzzinātu par PowerShell apakšvirkni.

Konkrēti, jūs uzzināsit, kā no virknēm iegūt apakšvirknes, izmantojot Apakšvirkne un Sadalīt Metodes . Turklāt jūs uzzināsit par PowerShell Sadalīt Operators .



Visbeidzot, jūs uzzināsit, kā sadalīt PowerShell virkni apakšvirknēs un izmantot Apakšvirkne Metode lai izvilktu apakšvirknes.



Pārlūkojiet ziņu tēmas

Kā izvilkt PowerShell apakšvirkni, izmantojot Apakšvirkne Metode

Kā izvilkt PowerShell apakšvirkni, izmantojot apakšvirknes metodi

Šajā pirmajā sadaļā jūs uzzināsit, kā izvilkt apakšvirknes no virknes ar Apakšvirkne Metode .



Es apzinos, ka apakšvirkņu izmantošana kā virknes daļa tajā pašā teikumā kā Apakšvirkne Metode var būt mulsinoši. Skaidrības labad apakšvirknes kā virknes daļa attiecas uz virknes daļas izvilkšanu. Piemēram, izvelkot apakšvirkni, usa no virknes usa.itechguides.com. Gluži pretēji, Apakšvirkne Metode attiecas uz PowerShell Apakšvirkne Metode izmanto uzdevuma veikšanai.

Es sākšu šo sadaļu, paskaidrojot sintaksi Apakšvirkne Metode.



The PowerShell sintakse Apakšvirkne Metode

Sintakse Apakšvirkne Metode:

|_+_|

Lai jūs saprastu šīs sadaļas pārējās daļas, ir ārkārtīgi svarīgi pievērst uzmanību manam šo sintakses skaidrojumam.

Kā redzams no sintakses, kad norādāt Apakšvirkne Metode no virknes, jūs ievadāt startIndex UN garums .

The starpt sintaksē norāda, ka startIndex un garums ir skaitļi (veseli skaitļi)

The startIndex ir pirmā rakstzīme apakšvirknei, kuru vēlaties izvilkt (skaitot no kreisās puses uz labo un sākot no 1 pievienošanas IndexOf – izņemot pirmo rakstzīmi).

Turklāt, garums ir rakstzīmju skaits, ko vēlaties izvilkt, sākot no 1 un skaitot no pirmās rakstzīmes apakšvirknē, kuru vēlaties izvilkt.

Nākamajā sadaļā es paskaidrošu IndexOf Metode un kā to izmantot, lai noteiktu startIndex un garums . Ja jūs joprojām mulsina mans mēģinājums izskaidrot šo diezgan sarežģīto jēdzienu startIndex un garums , nekautrējieties — tas kļūs skaidrāks, virzoties ceļvedī.

Lai palīdzētu jums izprast šo jēdzienu, nākamajā sadaļā tas tiks apspriests IndexOf un LastIndexOf Metodes.

Kā identificēt PowerShell apakšvirknes pozīciju ar IndexOf Un LastIndexOf Metodes

Kad es paskaidroju sintaksi Apakšvirkne Metode, es teicu, ka startIndex no PowerShell Apakšvirkne Metode ir pirmā rakstzīme apakšvirknei, kuru vēlaties izvilkt (nosaka, pievienojot 1 rezultātam IndexOf vērtība šai apakšvirknei).

Šajā sadaļā es izmantošu IndexOf un LastIndexOf Metodes PowerShell virknes, lai parādītu, kā PowerShell nosaka apakšvirknes rakstzīmju pozīcijas virknē.

Lai ilustrētu, apskatīsim pirmā burta u indeksa pozīciju usa.itechguides.com - izpildot zemāk esošo komandu…

|_+_| The IndexOf Metode atrod pirmo virknes gadījumu (skaitot no kreisās puses uz labo un sākot no nulles)

Rezultāts ir nulle (0)…

Kāpēc tas ir svarīgi? Prieks, ka pajautāji!

Jūs atceraties startIndex UN garums PowerShell sintaksē Apakšvirkne Metode ?

|_+_|

Ja burta u indeksa pozīcija usa.itechguides.com ir nulle (o), saskaņā ar IndexOf Metode – tas nozīmē, ka, ja vēlamies izvilkt rakstzīmes, kas sākas no burta u, mūsu startIndex būs 0 — jo tā ir virknes pirmā rakstzīme.

Izņēmums no noteikuma par 1 pievienošanu rezultātam IndexOf komandu, lai noteiktu startIndex ir virknes pirmā rakstzīme. The startIndex virknes pirmās rakstzīmes vērtība vienmēr būs nulle (0).

Cik pārsteidzošs!

Tagad pievienosim tam vēl vienu slāni. Ko darīt, ja mēs vēlamies atrast rakstzīmes pēdējo gadījumu virknē?

Tā vietā, lai izmantotu, IndexOf Metode , mēs izmantosim LastIndexOf Metode . Šī komanda noteiks pēdējā burta u atrašanās vietu virknē, usa.itechguides.com :

|_+_| LastIndexOf atrod pēdējo virknes gadījumu (skaitot no kreisās puses uz labo un sākot no nulles)

Rezultāts ir 10…

Kā identificēt PowerShell apakšvirknes pozīciju, izmantojot IndexOf un LastIndexOf metodesŠīs zināšanas par to, kā PowerShell nosaka apakšvirknes rakstzīmju pozīciju virknē, palīdzēs jums manipulēt ar PowerShell virknēm — neatkarīgi no sarežģītības.

Kā izvilkt PowerShell apakšvirkni, kas palikusi no virknes

Šajā sadaļā jūs uzzināsit, kā izvilkt apakšvirkni no virknes kreisās puses. Es parādīšu piemēru, ko var izmantot ražošanas vidēs.

Pieņemot, ka pārvaldāt Active Directory domēnu ar vairākiem apakšdomēniem. Apakšdomēni tiek nosaukti, izmantojot 3 burtu valsts nosaukumu. Jūsu apakšdomēnu piemēri ir USA.itechguides.com , jpn.itechguides.com .

Turklāt pieņemsim, ka jūs rakstāt PowerShell skriptu, kas prasa palaist nosacījumu komandas, kuru pamatā ir valsts apakšdomēna nosaukums — jūsu Active Directory domēnā.

Šajā sadaļā es jums iemācīšu, kā iegūt apakšdomēnu LIETOŠANAS , no USA.itechguides.com .

Sāksim ar apakšdomēna saglabāšanu, LIETOŠANAS itchguides.com mainīgajā, ko sauc apakšdomēns .

|_+_|

Veiciet tālāk norādītās darbības, lai izvilktu LIETOŠANAS , no USA.itechguides.com :

  1. Ievadiet punktu (.) blakus mainīgajam, kurā tiek saglabāts apakšdomēns, un pēc tam vārdu Apakšvirkne . Visbeidzot pievienojiet sākuma iekava…
|_+_| Pēc ieiešanas Apakšvirkne , varat arī nospiest tastatūras taustiņu Tab. Nospiežot taustiņu Tab, PowerShell pievienos sākuma iekava (.
  1. Pēc tam ievadiet startIndex kam seko komats (,). Pirms to darāt, atcerieties, ka mēs vēlamies iegūt ASV. Šajā gadījumā, tā kā mēs vēlamies izvilkt no pirmās rakstzīmes, mūsu startIndex ir nulle (0). Tagad komanda izskatīsies šādi:
|_+_|
  1. Visbeidzot ievadiet garums , kam seko beigu iekava, ). Šajā piemērā garums (skaitot no skaitļa blakus startIndex ) ir 3 – startIndex ir 0, pievienojot 1 pret 0, iegūst 1.

    Ja skaita no U – ASV ir 3 rakstzīmes – veidojot garums kopā 3 rakstzīmes.

    Šeit ir pēdējais skripts…
|_+_|

Lai redzētu komandu darbībā, palaidiet tālāk esošo komandu, vispirms…

|_+_|

Tas ietaupa virkni, USA.itechguides.com PowerShell mainīgajā, $apakšdomēns . Pēc tam palaidiet komandu, kas no virknes izņem ASV apakšvirkni, USA.itechguides.com .

|_+_|

Kā jau gaidīts, rezultāts ir ASV!

Kā rīkoties, ja vēlaties izvilkt vecākdomēnu, itchguides.com no USA.itechguides.com ? Kas būs mūsu startIndex un garums ?

Lai noteiktu jūsu startIndex , vispirms palaidiet IndexOf komandu, izmantojot pirmo punktu (.) kā ievadi.

|_+_|

Rezultāts ir 3…

Kā izvilkt PowerShell apakšvirkni, kas palikusi no virknes

Saskaņā ar manu iepriekšējo skaidrojumu, lai noteiktu startIndex no rezultāta IndexOf komandu, pievienojiet 1. Ja pievienojam 1 pret 3, mūsu startIndex ir 4.

Tālāk, lai noteiktu garums , sāciet skaitīt no 1, sākot no pirmās rakstzīmes virknē, kuru vēlaties iegūt. Pēc tam apstājieties pie pēdējās rakstzīmes, kuru vēlaties izvilkt no virknes.

Atcerieties, ka mēs vēlamies iegūt itchguides.com no USA.itechguides.com ?

Skaitot no virknes pirmās rakstzīmes, ko vēlamies iegūt (i), sākot ar 1, the garums ir 15 ( itchguides.com ir 15 rakstzīmes).

Pamatojoties uz šīm vērtībām, komanda, kas izvelk PowerShell apakšvirkni, itchguides.com no USA.itechguides.com ir…

|_+_|

Šeit ir rezultāts, itchguides.com !

Visbeidzot, lai palīdzētu vienkāršot šo diezgan mulsinošo jēdzienu startIndex , IndexOf , un garums , šeit ir kopsavilkums:

  1. The startIndex PowerShell virknes pirmās rakstzīmes vērtība vienmēr būs nulle (0)
  2. Lai noteiktu startIndex apakšvirknes, pievienojiet 1 IndexOf komandas rezultāts
  3. Visbeidzot, garums PowerShell apakšvirknes, kuru vēlaties iegūt, ir kopējais skaitlis (sākot no 1) un tiek skaitīts no apakšvirknes pirmās rakstzīmes līdz apakšvirknes pēdējai rakstzīmei.

Kā izvilkt PowerShell apakšvirkni pirms un pēc noteiktas rakstzīmes

Šajā sadaļā es jums iemācīšu, kā izvilkt PowerShell apakšvirkni pirms un pēc noteiktas rakstzīmes.

Lai to ilustrētu, atgriezīsimies pie mūsu apakšdomēna…

|_+_|

Sakiet, ka es vēlos izvilkt apakšvirkni pirms reklāmas pēc pirmā perioda (.). Faktiski es vēlos izvilkt ASV (apakšvirkne pirms norādītās rakstzīmes).

Turklāt es vēlos izvilkt vietni itechguides.com (apakšvirkne pēc norādītās rakstzīmes).

Pirmais solis ir izmantot IndexOf Metode lai noteiktu atsauces rakstzīmes pozīciju. Zemāk esošā komanda saglabā atsauces rakstzīmes pozīciju izsauktajā mainīgajā atkārtoti raksturs .

|_+_|

Tālāk izmantojiet apakšvirkne Metode lai izvilktu apakšvirkni pirms atsauces rakstzīmes.

|_+_|

Šeit ir rezultāts…

Google Maps zaudē GPS signālu

Visbeidzot, izmantojiet šo PowerShell apakšvirkne Metode lai izvilktu apakšvirkni aiz atsauces rakstzīmes

|_+_|

Kā paredzēts, rezultāts izņem apakšvirkni pēc perioda, kas ir itchguides.com !

Kā izvilkt PowerShell apakšvirkni pirms un pēc noteiktas rakstzīmes

Kā izvilkt PowerShell apakšvirkni starp 2 rakstzīmēm

Šajā sadaļā es jums iemācīšu, kā iegūt itech ceļveži no USA.itechguides.com . Šajā piemērā es vēlos izvilkt PowerShell apakšvirkni no 2 rakstzīmēm.

Divas rakstzīmes šajā piemērā ir pirmais un pēdējais punkts (.). Skriptam ir nepieciešamas 3 komandas.

Pirmajā komandā mēs izmantojam IndexOf Metode lai noteiktu pirmās atsauces rakstzīmes pozīciju (.). Pēc tam saglabājiet rezultātu mainīgajā, ko sauc pirmā atsauce .

|_+_|

Tālāk mēs izmantojam LastIndexOf Metode lai noteiktu pēdējās atsauces rakstzīmes atrašanās vietu. Rezultāts tiek saglabāts lastref mainīgs.

|_+_|

Visbeidzot, lai izvilktu PowerShell apakšvirkni, itech ceļveži starp 2 rakstzīmēm (punktiem), palaidiet tālāk esošo komandu…

|_+_|

Komandas rezultātam mēs pievienojām 1 IndexOf komandu. Šajā piemērā 3, kas kopā dod 4.

Tas padara mūsu startIndex Četri.

Turklāt programmā PowerShell apakšvirkne Metode , mēs izmantojām garums$lastref-4 .

No mūsu iepriekšējām komandām $lastref ir mainīgais, kuru mēs saglabājām LastIndexOf komandu.

Rezultāts ir 15. Noņemot 4 no 15, kļūst mūsu garums vienpadsmit.

Pēdējās komandas rezultāts ir itech ceļveži !

Kā iegūt PowerShell apakšvirkni, izmantojot sadalīšanas metodi

Kā iegūt PowerShell apakšvirkni, izmantojot sadalīšanas metodi

Šīs rokasgrāmatas pirmajā sadaļā es apspriedu, kā iegūt PowerShell apakšvirkni ar Apakšvirkne Metode . Šajā sadaļā jūs uzzināsit, kā izvilkt PowerShell apakšvirkni ar Sadalīt Metode .

Kā parasti, es sākšu šo sadaļu ar PowerShell sintaksi Sadalīt Metode .

The PowerShell sintakse Sadalīt Metode

Sintakse Sadalīt PowerShell apakšvirknes izvilkšanas metode ir šāda:

|_+_|

Atdalītājs ir jebkura rakstzīme, ko vēlaties izmantot, lai sadalītu PowerShell virkni atsevišķās apakšvirknēs.

Apakšvirknes pozīcija, kas ievietota iekavās [], tiek izmantota, lai atlasītu noteiktu apakšvirkni, kuru vēlaties atgriezt no virknēm.

Kā izmantot vairākus atdalītājus, izmantojot PowerShell sadalīšanu

Kā redzams PowerShell sintaksē Sadalīt Metode , tas pieļauj tikai vienu norobežotāju. Tomēr, ja vēlaties sadalīt apakšvirknes no virknes ar vairākiem atdalītājiem, jums ir jāizmanto PowerShell Sadalīt Operators , vietā.

PowerShell sintakse Sadalīt Operators ir…

|_+_|

Ja vēlaties izmantot vairākus atdalītājus, vispirms saglabājiet virkni mainīgajā — šajā piemērā $string. Pēc tam izmantojiet automātisko konveijera mainīgo $_, lai pievienotu vairākus norobežotājus, kā parādīts tālāk:

|_+_|

Piemēram, mēs varam to sadalīt Active Directory atšķirīgais nosaukums , OU=LON,OU=DEV,DC=ITECHGUIDES,DC=COM – izmantojot divus atdalītājus =, un ,.

Vispirms saglabāsim DN mainīgajā ar nosaukumu $ADDN…

|_+_|

Pēc tam, lai sadalītu virkni, izmantojot atdalītājus = un , izmantojiet tālāk norādīto komandu:

|_+_|

Bingo, pēdējā komanda sadalīja virkni atsevišķās PowerShell apakšvirknēs!

Nākamajā sadaļā jūs uzzināsit, kā atgriezt kādu no substingu.

Kā izvilkt PowerShell apakšvirkni ar Sadalīt Metode

Pēdējā sadaļā jūs redzējāt, kā virkni sadalīt atsevišķās apakšvirknēs, izmantojot PowerShell Sadalīt Operators . Šeit ir pēdējā komanda…

|_+_|

Komanda sadala virkni atsevišķās apakšvirknēs.

Kā iegūt PowerShell apakšvirkni, izmantojot sadalīšanas metodi

Kad es apspriedu sintaksi Sadalīt PowerShell apakšvirknes izvilkšanas metode ir tāda, ka es iekļāvu [] iekava, kas satur tās apakšvirknes pozīciju, kuru vēlaties atgriezt:

|_+_|

PowerShell numurē apakšvirkņu pozīcijas no nulles (0). Tātad, atgriežoties pie Active Directory DN piemēra — skatiet tālāk redzamo ekrānuzņēmumu — pirmā apakšvirkne OU atrodas nulles pozīcijā (0), LON atrodas 1. pozīcijā un tā tālāk.

Kā iegūt PowerShell apakšvirkni, izmantojot sadalīšanas metodi

Tātad, lai atgrieztu LON, mēs ievietosim pēdējo komandu [1] iekavā. Šajā gadījuma, viens ir tās apakšvirknes pozīcija, kuru vēlamies atgriezt.

Šeit ir pavēle…

|_+_|

Šeit ir komandas rezultāts:

Varat arī saglabāt komandas rezultātu, izmantojot Sadalīt Operators par mainīgo.

|_+_|

Pēc tam atgrieziet jebkuru no apakšvirknēm, iekļaujot apakšvirknes pozīciju [] iekavā. Piemēram, lai atgrieztu LON, mēs izmantosim tālāk norādīto komandu:

|_+_|

Rezultāts ir tāds pats kā iepriekšējā komanda bez mainīgā…

Kā iegūt PowerShell apakšvirkni, izmantojot sadalīšanas metodi

Kā izvilkt pēdējo apakšvirknes elementu, izmantojot PowerShell sadalīšanu

Ja vēlaties atgriezt apakšvirknes pirmo vai pēdējo elementu (rakstzīmi), varat izmantot to pašu principu no mūsu pēdējā piemēra.

Pētot šo tēmu, uzdūros šim stackoverflow.com pavediens. Lietotājam ir tālāk parādīta virkne:

|_+_| StackOverflow jautājums izskaidro, ka virkne, 0.3.1-15-g3b885c5 nozīmē Tag-CommitDistance-CommitId . Tātad 0.3.1 ir tagu , 15 ir CommitDistance , un g3b885c5 ir CommitId .

Jautājums ir atgriezt pirmo virknes daļu, 0.3.1 – pēc šī lietotāja teiktā, sauc tagu . Turklāt lietotājs vēlas atgriezt pēdējo virknes daļu g3b885c5, ko sauc par CommitId .

Pirmais solis ir saglabāt virkni mainīgajā (tas nav obligāts, bet parasti atvieglo dzīvi).

|_+_|

Pēc tam izmantojiet Sadalīt Metode virknes sadalīšanai PowerShell apakšvirknēs, izmantojot - kā atdalītāju. Vēlreiz, lai man būtu viegli izskaidrot, es saglabāšu rezultātu citā mainīgajā…

|_+_|

Lai redzētu pēdējās komandas rezultātu, palaidiet $TccSubstrings mainīgs atsevišķi.

|_+_|

Te tas ir…

Pamatojoties uz mūsu iepriekšējiem piemēriem šajā sadaļā, lai iegūtu Tag (pirmā apakšvirkne), izmantojiet tālāk norādīto komandu:

|_+_|

Visbeidzot, lai iegūtu CommitId (pēdējā apakšvirkne), izmantojiet tālāk esošo komandu…

|_+_|

Un šeit ir rezultāti…

Kā izvilkt pēdējo apakšvirknes elementu, izmantojot PowerShell sadalīšanu

Ņemiet vērā, ka šo problēmu var atrisināt arī, izpildot vienu komandu…

|_+_|

Un šeit ir tas pats rezultāts…

Tam nav nekādas burvības, viss, ko es izdarīju, bija apvienot visas komandas vienā komandā!

Kā sadalīt virkni un noņemt tukšos ierakstus, izmantojot PowerShell sadalīšanu

Šajā pēdējā piemērā es vēlos jums parādīt, kā virkni ar tukšām atstarpēm (vai ierakstiem) sadalīt apakšvirknēs. Pēc tam noņemiet tukšās vietas gala rezultātā.

Citā stackoverflow.com pavediens, lietotājs ievietoja šo virkni, kas saglabāta mainīgajā:

|_+_|

Pēc tam lietotājs izmantoja Sadalīt Metode lai sadalītu virkni atsevišķās apakšvirknēs.

|_+_|

Pēc lietotāja domām (un tas ir acīmredzams), problēma ir tā, ka rezultātam ir atstarpes.

Persona, kas ievietoja šo jautājumu, vēlējās, lai atstarpes tiktu noņemtas no apakšvirknēm. Ir vairāki risinājumi, taču viens ātrs veids ir sadalīt komandas izvadi uz Kur-Objekts .

Tas ir pieklājīgi Rainants . Šeit ir pavēle…

|_+_|

Un šeit ir rezultāts…

Tas ir viss, mūsu atjauninātais PowerShell apakšvirknes raksts! Ceru, ka jums tas noderēja.

Ja šis raksts jums noderēja, lūdzu, balsojiet uz Vai šī ziņa bija noderīgs jautājums tālāk.

Varat arī uzdot jautājumu, atstāt komentāru vai sniegt papildu atsauksmes, izmantojot veidlapu Atstājiet atbildi, kas atrodas šīs lapas beigās.

Visbeidzot, lai iegūtu vairāk PowerShell tehnoloģiju S zonu, apmeklējiet mūsu Windows PowerShell pamācību lapu. Iespējams, jums ļoti noderēs arī mūsu lapa Work from Home.

Atsauces un turpmākā literatūra

  1. Par Splitu
  2. String.Substring metode
  3. Par operatoriem
  4. Par metodēm
  5. String.Split metode