Articles

PowerShell string contains

X

Privacy& Cookies

Ez az oldal cookie-kat használ. A folytatással elfogadja a használatukat. Tudjon meg többet, beleértve a cookie-k vezérlését is.

megvan!

hogyan lehet ellenőrizni, hogy egy PowerShell karakterlánc tartalmaz-e karaktert vagy hordozót?

lehet, hogy a kísértés, hogy megpróbálja ezt:

PS> $s = “abcdefghijk”
PS> $s-tartalmaz ” f ”
False

de –tartalmaz is dolgozik a tartalmát tömbök. Tehát ezt megteheti:

PS> ($s.Tocharray()) -tartalmazza az ” f “
True

implicit módon konvertálja az ” f ” karakterláncot az összehasonlítás érdekében. Az összehasonlítás valójában ez a

PS > ($s.Tocharararray()) -tartalmaz ‘f’
True

Ez rendben van egy karakter, de ha azt szeretnénk, hogy teszteljék a substring

p> $s-tartalmaz ‘def’
False
PS> ($s.ToCharArray()) -tartalmaz ‘def’
false

Ez a megközelítés nem fog működni.

az Indexof metódust kell használnia

p> $s.Indexof(‘f’)
5
PS> $s.Indexof(‘def’)
3

a visszaadott érték az alrendszer első karakterének pozíciója.

Azt is teszt egy sor karakter

PS> $a = ‘g’,’j’,’a’
PS> $s.IndexOfAny($a)
0

Megint te az ELSŐ karaktert, ebben az esetben az ” a ”

ne feledje, PowerShell van .NETTÓ alapú, így az első index 0

Lehetővé teszi, hogy kap egy kis ismétlés a cél

PS> $s = $s * 3

PS> $s
abcdefghijkabcdefghijkabcdefghijk

Meg is van a lehetőség, hogy megtaláld az UTOLSÓ esemény a substring

PS> $s.LastIndexOf (‘f’)
27

p >$s.LastIndexOfAny($a)
31

ez utóbbi az utolsó ” j ” a karakterláncban – ez az utolsó előfordulása bármelyik karakter kívánt egyezik.

Ha nincs egyezés kapsz -1 vissza

p> $s.IndexOf(‘z’)
-1
PS> $s.LastIndexOf(‘z’)
-1

>