Kako ekstrahirati podniz PowerShell iz niza

26. maja 2021 40320 Pogledi powershell-podniz

V PowerShell je podniz del niza. Podniz PowerShell lahko ustvarite iz niza z uporabo substrin g, razdeliti metode.





Primer niza je poddomena.domena.com . Podnizi za poddomena.domena.com so poddomena , domena , in z .



V tem območju S vas bom naučil vsega, kar se morate naučiti o podnizu PowerShell.

Natančneje, naučili se boste, kako ekstrahirati podnize iz nizov z uporabo Podniz in Split Metode . Poleg tega boste spoznali PowerShell Split Operater .



Končno se boste naučili, kako razbiti PowerShell niz na podnize in uporabiti Podniz Metoda za ekstrakcijo podnizov.



Brskajte po temah objav

Kako ekstrahirati podniz PowerShell z Podniz Metoda

Kako ekstrahirati podniz PowerShell z metodo podniza

V tem prvem razdelku se boste naučili, kako ekstrahirati podnize iz niza z Podniz Metoda .



Zavedam se, da uporaba podnizov kot dela niza v istem stavku kot Podniz Metoda lahko zmedeno. Zaradi jasnosti se podnizi kot del niza nanašajo na ekstrahiranje dela niza. Na primer, ekstrahiranje podniza, usa iz niza usa.itechguides.com. Ravno nasprotno, Podniz Metoda se nanaša na PowerShell Podniz Metoda uporablja za opravljanje naloge.

Ta razdelek bom začel z razlago sintakse Podniz Metoda.



Sintaksa za PowerShell Podniz Metoda

Sintaksa Podniz Metoda:

|_+_|

Da boste razumeli preostale dele tega razdelka, je izjemno pomembno, da ste pozorni na mojo razlago teh sintaks.

Kot lahko vidite iz sintakse, ko podate Podniz Metoda niza, vnesete startIndex IN dolžina .

The int v sintaksi označuje, da je startIndex in dolžina so številke (cela števila)

The startIndex je prvi znak podniza, ki ga želite ekstrahirati (štetje od leve proti desni in začenši od dodajanja 1 k rezultatu Indeks – razen prvega znaka).

Poleg tega je dolžina je število znakov, ki jih želite ekstrahirati, začenši od 1 in šteje od prvega znaka podniza, ki ga želite ekstrahirati.

V naslednjem razdelku bom razložil Indeks Metoda in kako ga uporabiti za določitev startIndex in dolžina . Če vas moj poskus razložitve tega precej zapletenega koncepta še vedno zmede startIndex in dolžina , ne bodite obupani – postalo bo jasneje, ko boste napredovali v vodniku.

Da bi lažje razumeli ta koncept, bomo razpravljali v naslednjem razdelku Indeks in LastIndexOf Metode.

Kako prepoznati položaj podniza PowerShell s Indeks in LastIndexOf Metode

Ko sem razložil sintakso Podniz Metoda, rekel sem, da startIndex za PowerShell Podniz Metoda je prvi znak podniza, ki ga želite ekstrahirati (določeno z dodajanjem 1 rezultatu Indeks vrednost za ta podniz).

V tem razdelku bom uporabil Indeks in LastIndexOf Metode niza PowerShell, ki vam pokaže, kako PowerShell določa položaje znakov podniza v nizu.

Za ponazoritev preučimo indeksni položaj prve črke u usa.itechguides.com – z izvajanjem spodnjega ukaza …

|_+_| The Indeks Metoda najde prvo pojavljanje niza (štetje od leve proti desni in začenši od nič)

Rezultat je nič (0)…

Zakaj je to pomembno? Lepo, da si vprašal!

Se spomniš startIndex IN dolžina v sintaksi PowerShell Podniz Metoda ?

|_+_|

Če je indeksni položaj črke u v usa.itechguides.com je nič (o), glede na Indeks Metoda – pomeni, da če želimo izluščiti znake, ki se začnejo s črko u, naš startIndex bo 0 – ker je prvi znak v nizu.

Izjema od pravila dodajanja 1 rezultatu Indeks ukaz za določitev startIndex je prvi znak v nizu. The startIndex prvega znaka niza bo vedno nič (0).

Kako neverjetno!

Zdaj pa dodajmo temu še eno plast. Kaj pa, če želimo najti zadnji pojav znaka v nizu?

Namesto uporabe, Indeks Metoda , bomo uporabili LastIndexOf Metoda . Ta ukaz bo določil lokacijo zadnjega pojavljanja črke u v nizu, usa.itechguides.com :

|_+_| LastIndexOf poišče zadnji pojav niza (štetje od leve proti desni in začenši od nič)

Rezultat je 10…

Kako prepoznati položaj podniza PowerShell z metodama IndexOf in LastIndexOfČe imate to znanje o tem, kako PowerShell določa položaj znakov podniza v nizu, vam bo pomagal manipulirati z nizi PowerShell – ne glede na zapletenost.

Kako ekstrahirati podniz PowerShell levo od niza

V tem razdelku se boste naučili, kako izvleči podniz z leve strani niza. Pokazal vam bom primer, ki ga je mogoče uporabiti v produkcijskem okolju.

Ob predpostavki, da upravljate domeno Active Directory z več poddomenami. Poddomene so poimenovane z imenom države s 3 črkami. Primeri vaših poddomen so ZDA.itechguides.com , jpn.itechguides.com .

Poleg tega predpostavimo, da pišete skript PowerShell, ki zahteva, da zaženete pogojne ukaze na podlagi imena poddomene države – znotraj vaše domene Active Directory.

V tem razdelku vas bom naučil, kako ekstrahirati poddomeno UPORABE , od ZDA.itechguides.com .

Začnimo s shranjevanjem poddomene, UPORABE itechguides.com v spremenljivki, ki se imenuje poddomena .

|_+_|

Sledite spodnjim korakom za ekstrakcijo UPORABE , od ZDA.itechguides.com :

  1. Vnesite piko (.) poleg spremenljivke, v kateri je poddomena shranjena, ki ji sledi beseda Podniz . Na koncu dodajte odprti oklepaj ...
|_+_| Po vstopu Podniz , lahko pritisnete tudi tipko Tab na tipkovnici. Ko pritisnete tipko Tab, bo PowerShell dodal odprti oklepaj (.
  1. Nato vnesite startIndex sledi vejica (,). Preden to storite, ne pozabite, da želimo izvleči ZDA. V tem primeru, ker želimo iz prvega znaka izločiti naš startIndex je nič (0). Ukaz bo zdaj videti takole:
|_+_|
  1. Na koncu vnesite dolžina , ki mu sledi zaključni oklepaj, ). V tem primeru je dolžina (štetje od številke poleg startIndex ) je 3 – the startIndex je 0, če dodamo 1 k 0, dobimo 1.

    Če štejete od U – ZDA imajo 3 znake – naredite dolžina skupaj 3 znake.

    Tukaj je končni scenarij …
|_+_|

Če želite videti ukaz v akciji, najprej zaženite spodnji ukaz ...

|_+_|

To shrani niz, ZDA.itechguides.com v spremenljivki PowerShell, $poddomena . Nato zaženite ukaz, ki iz niza izvleče podniz ZDA, ZDA.itechguides.com .

|_+_|

Po pričakovanjih so rezultat ZDA!

Kaj pa, če želite ekstrahirati nadrejeno domeno, itechguides.com od ZDA.itechguides.com ? Kaj bo naše startIndex in dolžina ?

Za določitev svojega startIndex , najprej zaženite Indeks ukaz, pri čemer za vnos uporabite prvo piko (.).

|_+_|

Rezultat je 3…

Kako ekstrahirati podniz PowerShell levo od niza

Po moji prejšnji razlagi, za določitev startIndex iz rezultata Indeks ukaz, dodamo 1. Če dodamo 1 k 3, naš startIndex je 4.

Nato za določitev dolžina , začnite šteti od 1, začenši s prvim znakom niza, ki ga želite ekstrahirati. Nato se ustavite pri zadnjem znaku, ki ga želite izvleči iz niza.

Ne pozabite, da želimo ekstrahirati itechguides.com od ZDA.itechguides.com ?

Če štejemo od prvega znaka niza, ki ga želimo izvleči (i), ki se začne pri 1, je dolžina je 15 ( itechguides.com je 15 znakov).

Na podlagi teh vrednosti ukaz, ki ekstrahira podniz PowerShell, itechguides.com od ZDA.itechguides.com je…

alternative času kokic
|_+_|

Tukaj je rezultat, itechguides.com !

Nazadnje, za pomoč pri poenostavitvi tega dokaj zmedenega koncepta startIndex , Indeks , in dolžina , tukaj je povzetek:

  1. The startIndex prvega znaka niza PowerShell bo vedno nič (0)
  2. Za določitev startIndex podniza, dodajte 1 v Indeks rezultat ukaza
  3. Končno, dolžina podniza PowerShell, ki ga želite ekstrahirati, je skupno število (od 1) in šteje od prvega znaka podniza do zadnjega znaka podniza.

Kako ekstrahirati podniz PowerShell pred in po določenem znaku

V tem razdelku vas bom naučil, kako ekstrahirati podniz PowerShell pred in za določenim znakom.

Da to ponazorimo, se vrnimo na našo poddomeno ...

|_+_|

Recimo, da želim izvleči podniz pred oglasom po prvi piki (.). Dejansko želim izvleči ZDA (podniz pred navedenim znakom).

Poleg tega želim ekstrahirati itechguides.com (podniz za navedenim znakom).

Prvi korak je uporaba Indeks Metoda za določitev položaja referenčnega znaka. Spodnji ukaz shrani položaj referenčnega znaka v spremenljivki, ki se imenuje refcharacter .

|_+_|

Nato uporabite podniz Metoda da izvlečete podniz pred referenčnim znakom.

|_+_|

Tukaj je rezultat…

Na koncu uporabite naslednji PowerShell podniz Metoda da izvlečete podniz za referenčnim znakom

|_+_|

Kot je bilo pričakovano, rezultat izvleče podniz po piki, ki je itechguides.com !

Kako ekstrahirati podniz PowerShell pred in po določenem znaku

Kako ekstrahirati podniz PowerShell med 2 znakoma

V tem razdelku vas bom naučil, kako ekstrahirati itechguides od ZDA.itechguides.com . V tem primeru želim izvleči podniz PowerShell med 2 znakoma.

Dva znaka v tem primeru sta prva in zadnja pika (.). Skript zahteva 3 ukaze.

V prvem ukazu uporabljamo Indeks Metoda za določitev položaja prvega referenčnega znaka (.). Nato rezultat shranite v spremenljivko z imenom firstref .

|_+_|

Nato uporabljamo LastIndexOf Metoda za določitev lokacije zadnjega referenčnega znaka. Rezultat se shrani v lastref spremenljivka.

|_+_|

Končno, če želite ekstrahirati podniz PowerShell, itechguides med 2 znakoma (pike), zaženite spodnji ukaz ...

|_+_|

V ukazu smo rezultatu dodali 1 Indeks ukaz. V tem primeru 3, kar daje skupno 4.

To naredi naše startIndex štiri.

Poleg tega v PowerShell podniz Metoda , smo uporabili dolžina kot $lastref-4 .

Iz naših prejšnjih ukazov, $lastref je spremenljivka, ki smo jo shranili kot rezultat LastIndexOf ukaz.

Rezultat je 15. Odstranitev 4 od 15 naredi naš dolžina enajst.

Rezultat zadnjega ukaza je itechguides !

Kako ekstrahirati podniz PowerShell z metodo Split

Kako ekstrahirati podniz PowerShell z metodo Split

V prvem razdelku tega priročnika sem razpravljal o tem, kako ekstrahirati podniz PowerShell z Podniz Metoda . V tem razdelku se boste naučili, kako ekstrahirati podniz PowerShell z Split Metoda .

Kot običajno bom ta razdelek začel s sintakso PowerShell Split Metoda .

Sintaksa za PowerShell Split Metoda

Sintaksa Split Metoda za ekstrahiranje podniza PowerShell je:

|_+_|

Ločilo je kateri koli znak, ki ga želite uporabiti za razdelitev niza PowerShell na posamezne podnize.

Položaj podniza v oklepaju [] se uporablja za izbiro določenega podniza, ki ga želite vrniti iz nizov.

Kako uporabljati več ločil s PowerShell Split

Kot je razvidno iz skladnje PowerShell Split Metoda , dovoljuje samo en ločilo. Če pa želite podnize razdeliti iz niza z več ločili, morate uporabiti PowerShell Split Operater , namesto tega.

Sintaksa PowerShell Split Operater je…

|_+_|

Če želite uporabiti več ločil, najprej shranite niz v spremenljivko – v tem primeru $string. Nato uporabite spremenljivko samodejnega cevovoda $_, da dodate več ločil, kot je prikazano spodaj:

|_+_|

To lahko na primer razdelimo Razlikovno ime Active Directory , OU=LON,OU=DEV,DC=ITECHGUIDES,DC=COM – z uporabo dveh ločilnikov, = in ,.

Najprej shranimo DN v spremenljivko, imenovano $ADDN ...

|_+_|

Nato za razdelitev niza z ločili =, in , uporabite spodnji ukaz:

|_+_|

Bingo, zadnji ukaz je razdelil niz na posamezne podnize PowerShell!

V naslednjem razdelku se boste naučili, kako vrniti enega od podstavkov.

Kako ekstrahirati podniz PowerShell z Split Metoda

V zadnjem razdelku ste videli, kako z uporabo PowerShell razdeliti niz na posamezne podnize Split Operater . Tukaj je zadnji ukaz ...

|_+_|

Ukaz razdeli niz na njegove posamezne podnize.

Kako ekstrahirati podniz PowerShell z metodo Split

Ko sem razpravljal o sintaksi Split Metoda za ekstrahiranje podniza PowerShell je, da sem vključil oklepaj [], ki vsebuje položaj podniza, ki ga želite vrniti:

|_+_|

PowerShell oštevilči položaje podnizov od nič (0). Torej, če se vrnemo k primeru Active Directory DN – glejte spodnji posnetek zaslona – prvi podniz OU je na položaju nič (0), LON je na položaju 1 itd.

Kako ekstrahirati podniz PowerShell z metodo Split

Torej, da vrnemo LON, bomo zadnji ukaz zajeli v oklepaju [1]. V tem primeru, eno je položaj podniza, ki ga želimo vrniti.

Tukaj je ukaz …

|_+_|

Tukaj je rezultat ukaza:

Lahko pa tudi shranite rezultat ukaza z Split Operater v spremenljivko.

|_+_|

Nato vrnite katerega koli podniza tako, da zaprete položaj podniza v oklepaju []. Za vrnitev LON bomo na primer uporabili spodnji ukaz:

|_+_|

Rezultat je enak prejšnjemu ukazu brez spremenljivke ...

Kako ekstrahirati podniz PowerShell z metodo Split

Kako ekstrahirati zadnji element podniza z razdelitvijo PowerShell

Če želite vrniti prvi ali zadnji element (znak) podniza, lahko uporabite enako načelo iz našega zadnjega primera.

Med raziskovanjem te teme sem naletel na to stackoverflow.com nit. Uporabnik ima spodaj prikazan niz:

|_+_| Vprašanje StackOverflow pojasnjuje, da niz, 0.3.1-15-g3b885c5 pomeni Tag-CommitDistance-CommitId . Torej, 0.3.1 je oznaka , 15 je CommitDistance , in g3b885c5 je CommitId .

Vprašanje je vrniti prvi del niza, 0.3.1 – po besedah ​​tega uporabnika, klicanega oznaka . Poleg tega želi uporabnik vrniti zadnji del niza, g3b885c5, imenovan CommitId .

Prvi korak je, da shranite niz v spremenljivko (to ni obvezno, vendar na splošno olajša življenje).

|_+_|

Nato uporabite Split Metoda za razdelitev niza na podnize PowerShell z uporabo - kot ločila. Še enkrat, da bom lažje razlagal, bom rezultat shranil v drugo spremenljivko ...

ms paint app za android
|_+_|

Če si želite ogledati rezultat zadnjega ukaza, zaženite $TccSubstrings samo spremenljivka.

|_+_|

Tukaj je…

Na podlagi naših prejšnjih primerov v tem razdelku ekstrahiramo Oznaka (prvi podniz), uporabite spodnji ukaz:

|_+_|

Na koncu ekstrahiramo CommitId (zadnji podniz), uporabite spodnji ukaz ...

|_+_|

In tukaj so rezultati…

Kako ekstrahirati zadnji element podniza z razdelitvijo PowerShell

Upoštevajte, da lahko to težavo rešite tudi tako, da zaženete en sam ukaz ...

|_+_|

In tukaj je enak rezultat …

V tem ni čarovnije, vse kar sem naredil je bilo, da sem vse ukaze združil v en ukaz!

Kako razdeliti niz in odstraniti prazne vnose s PowerShell Split

V tem zadnjem primeru vam želim pokazati, kako razdeliti niz s praznimi presledki (ali vnosi) na podnize. Nato odstranite prazne prostore v končnem rezultatu.

V drugem stackoverflow.com nit, je uporabnik objavil ta niz, shranjen v spremenljivki:

|_+_|

Uporabnik je nato uporabil Split Metoda za razdelitev niza na posamezne podnize.

|_+_|

Po mnenju uporabnika (in to je očitno) je težava v tem, da ima rezultat presledke.

Oseba, ki je objavila to vprašanje, je želela, da se presledki odstranijo iz podnizov. Obstaja več rešitev, toda en hiter način je, da pošljete izhod ukaza split v kanal Kam-predmet .

To je z vljudnostjo Rynant . Tukaj je ukaz …

|_+_|

In tukaj je rezultat…

To je to, naš posodobljen članek o podnizi PowerShell! Upam, da vam je bilo v pomoč.

Če se vam je ta članek zdel koristen, vljudno glasujte da na spodnje vprašanje Ali je bila ta objava koristna.

Lahko pa postavite vprašanje, pustite komentar ali pošljete več povratnih informacij z obrazcem za pustite odgovor na koncu te strani.

Nazadnje, za več PowerShell tech S con obiščite našo stran z navodili za Windows PowerShell. Morda vam bo v veliko pomoč tudi naša stran Delo od doma.

Reference in dodatno branje

  1. O Splitu
  2. String.Substring Metoda
  3. O operaterjih
  4. O metodah
  5. String.Split Method