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"
„Ma esik az eső” - match „haza”
„Ez a te szülővárosod” -egyezik „város”
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"
"Vikash - mérkőzés R"
"Akash - Match A
"
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 -egyezés (k-p)"
"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)
"
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"
"„2011students -match (^2008)diákok"
"„2009students -match (^2008)diákok
""„2008students -match (^2008)diákok
""„2012students -match (^2008)diákok
""„2008students -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"
„Vikash” -egyezés „^Ji”
„Suraj” -match „^Su”
„Bhanu” - egyezés „^Bh”
„Anny” - „^Ki” egyezés
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 $"
„Vikash” -egyezik „akár $”
“Suraj” -match “aj$”
„Bhanu” -egyezés „hu$”
„Anny” - egyezés „ny$”
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 (zz)"
"$string -egyezés (Hs)
""$string -match (ip)
""$string -match (se)
""$string -match (ls)
"
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 -
- PowerShell karakterlánc-függvények
- PowerShell-interjúkérdések
- Python Regex
- VBA RegEx