Segítsen a webhely fejlesztésében, megosztva a cikket a barátokkal!

Bevezetés a Regexbe a PowerShellben

A reguláris kifejezés egy speciális karakterkombináció, amely segít különböző és bonyolult típusú adatokat megtalálni szövegből és bármilyen karakterláncból. Használhatók szövegek és adatok keresésére, szerkesztésére vagy manipulálására. Mivel a PowerShell a .NET tetejére épül, így a .NET összes regex szintaxisa is támogatja a PowerShellt. Hadd mondjak néhány példát, tegyük fel, hogy van egy hosszú karakterlánca, amely számokat, betűket és speciális karaktereket tartalmaz, és szeretné tudni a szám kezdőpozícióját, és nem tudja használni a reguláris kifejezéseket.Ismét tegyük fel, hogy sok felhasználó listája van, de csak azokat a felhasználókat szeretné látni, akiknél az „sh” az utolsó karakterlánc. példa „Akash”, „Vikash”, „Rakesh”, „Suman”, „Amit”, „Anish”, és csak azokat a neveket szeretnénk látni, amelyekben „sh” karakterlánc, így a nevek „Akash”,” Vikash "," Rakesh", "Anish", mivel mindegyik tartalmazza az "sh" karakterláncot.

A reguláris kifejezés metakarakterének magyarázata a PowerShellben

Ha már dolgozott a PowerShell különböző szkriptjeivel, vagy már kifejlesztett vagy szkripteket, akkor általában reguláris kifejezésekkel került kapcsolatba.

Szintaxis:

$some_Data=@('Ranjan', 'Anish','Ranjana',"Anjana", "Sanjana")
$some_Data - Hol-Object {$_ -match 'Jan'}

Itt létrehozunk egy karakterlánc tömböt, majd írunk egy lekérdezést, amely megjeleníti a "Ranjan", "Ranjana", "Anjana", "Sanjana" szöveget, nem fogja megjeleníteni az "Anish"-t, mert az "Anish" nem egyezik a Jan mintával. A -match operátor a Where-Object parancsmag nélkül is használható.

'Ranjan' - Match 'Jan'

Az igaz értéket adja vissza, mivel a „Jan” a „Ranjan” részkarakterlánca,

'sh' - Match 'Ranjan'

Hamis értéket ad vissza, mivel az „sh” nem a „Ranjan” részkarakterlánca.

Az alábbi példában a „jó fiú” szót „rosszfiú”-ra cseréljük. Tehát a cseréhez először összehasonlítja és egyezik, majd cserélje ki.

'Ranjan jó fiú' - a 'jó fiú' helyett a 'rosszfiú'

Kimenet:

Itt láthatjuk felülről, a -replace parancs után a „Ranjan egy rossz fiú” kimenetet kapjuk. A „-replace” operátor több műveletet hajt végre, például megtalálja a megfelelő karakterláncot, majd lecseréli. Így a PowerShell reguláris kifejezések használata magyarázható, mivel ezeket főként a megfelelő karakterlánc összehasonlítására és cseréjére használják.

Példák a reguláris kifejezés végrehajtására a PowerShellben

Alább látható néhány példa:

Példa 1

Itt egy adott karakterláncban bárhol elérhető pontos karaktereket fogjuk egyeztetni.

"Ez a szülőváros -mérkőzz haza"
„Ez a te szülővárosod” -egyezik „város”
„Ma esik az eső” - match „haza”

Kimenet:

Példa 2

Lássunk itt egy kicsit több különböző típusú példát, tegyük fel, hogy ellenőrizni akarjuk a betűegyezést vagy az egybetűs egyezést

"Ranjan -mérkőzés R"
"Akash - Match A
"
"Vikash - mérkőzés R"

Kimenet:

Példa 3

Ebben a példában a düh értéket fogjuk egyeztetni. A kötőjel (-) használata lehetővé teszi egy szomszédos karakter megadását.

"Ranjan -egyezés (A-Z)anjan"
"Ranjan - mérkőzés (A-Z)
""Ranjan -match (i-k)
""Ranjan - mérkőzés (k-p)
""Ranjan -egyezés (k-k)
""Ranjan - mérkőzés (k-l)
""Ranjan - mérkőzés (k-o)
"
"Ranjan -egyezés (k-p)"

Minden példában azt ellenőrzi, hogy a „Ranjan” bármely betűje a (k-l), (k-o), (k-p) haragja alá kerül-e vagy sem. Ha a meghatározott tartomány egy adott karakterlánc alá esik, akkor igaz, ellenkező esetben false értéket ad vissza.

Kimenet:

4. példa

Itt az összes karaktert egyeztetjük, kivéve a zárójelben lévőket. Tegyük fel, hogy van egy listánk a regisztrációs számokról, de szeretnénk látni az összeset, kivéve a 2008-as csoportos hallgatók regisztrációját, akkor használhatjuk ezeket a párosítási típusokat.

"2009students -match (^2008)diákok"
"„2009students -match (^2008)diákok
""„2008students -match (^2008)diákok
""„2012students -match (^2008)diákok
""„2008students -match (^2008)diákok
"
"„2011students -match (^2008)diákok"

Kimenet:

Példa 5

Ebben a példában a karakterek elejét fogjuk egyeztetni, tegyük fel, hogy sok felhasználónk van, és szeretnénk ellenőrizni, hogy ez a felhasználó tartalmaz-e bizonyos karaktereket az elején, amelyeket ellenőrizni akarunk

"Ranjan -mérkőzés ^Ra"
„Suraj” -match „^Su”
„Bhanu” - egyezés „^Bh”
„Anny” - „^Ki” egyezés
„Vikash” -egyezés „^Ji”

A fenti példában azt ellenőrizzük, hogy az adott karakterlánc „Ra”-val kezdődik-e a „Ranjan” névnél, ami igaz volt, és ugyanígy a „Suraj” névből, ami ismét igaz volt, de nem volt igaz a „Ki”-ra az „Anny” névre, az Anny egy „An”-val kezdődik, nem „Ki”-vel.

Kimenet:

6. példa

Most a záró karaktereket fogjuk egyeztetni, ellenőrizni fogja, hogy a záró karakterek egyeznek-e a megadott kifejezés betűjével vagy sem.

"Ranjan -egyezzen egy $"
“Suraj” -match “aj$”
„Bhanu” -egyezés „hu$”
„Anny” - egyezés „ny$”
„Vikash” -egyezik „akár $”

A fenti példában azt ellenőrizzük, hogy a megadott karakterlánc „an”-ra végződik-e a „Ranjan” névnél, ami igaz volt, és ugyanígy a „Suraj” névből származó „aj”-ra, ami ismét igaz volt, de nem volt igaz a „hu”-ra a „Bhanu” névre. A Bhanu név „nu”-ra végződik, nem „hu”-ra.

Kimenet:

Példa 7

Eddig csak a szekvenciális kifejezések illesztéséről beszéltünk, most tegyük fel, hogy ellenőrizni akarjuk, hogy a karakterláncon belül bárhol vannak-e nem szekvenciális betűk.Tegyük fel például, hogy ellenőriznie kell, hogy a „Hello barátom, szoftvermérnök vagyok” karakterlánc tartalmazza-e a „hs”-t. Tehát láthatjuk, hogy az adott karakterláncban ott van a karakter, de nem szekvenciális.

$string="Kedves barátom, szoftvermérnök vagyok"
"$string -egyezés (Hs)
""$string -match (ip)
""$string -match (se)
""$string -match (ls)
"
"$string -egyezés (zz)"

A fenti példában, ha bármelyik betű egyezik, az igazat ad vissza, függetlenül a betű helyzetétől, sokszor kerülhetünk olyan helyzetbe, amikor tudnunk kell a betűsorok létezését

Kimenet:

Következtetés

Ha alaposan megnézi a PowerShell reguláris kifejezéseinek használatát, akkor azt fogja tapasztalni, hogy óriási mennyiségű adminisztrátori szintű problémát tud megoldani. Mint például az egyező betűk keresése a kezdő vagy a véghelyzetben, vagy a betűk megtalálása bárhol a karakterláncokon belül.

Ajánlott cikkek

Ez egy útmutató a Regexhez a PowerShellben. Itt példákkal tárgyaljuk a PowerShell bevezetését, szintaxisát és Regex metakarakterét. Ha többet szeretne megtudni, tekintse meg a következő cikkeket -

  1. PowerShell karakterlánc-függvények
  2. PowerShell-interjúkérdések
  3. Python Regex
  4. VBA RegEx

Segítsen a webhely fejlesztésében, megosztva a cikket a barátokkal!

Kategória: