如何使用Powershell來計算字符串內的字符串數量?計算字符串中字符串的數量?
例如:
$a = "blah test <= goes here/blah test <= goes here/blah blah"
我想數<= goes here /
多少次出現在上面。
如何使用Powershell來計算字符串內的字符串數量?計算字符串中字符串的數量?
例如:
$a = "blah test <= goes here/blah test <= goes here/blah blah"
我想數<= goes here /
多少次出現在上面。
另一種方式在同一行(類似於@mjolinor方式):
([regex]::Matches($a, "<= goes here /")).count
您可以使用[.NET String.Split][1]
方法重載,它接受一個字符串對象數組,然後計算您獲得的分割數。
($a.Split([string[]]@('<= goes here /'),[StringSplitOptions]"None")).Count - 1
請注意,您必須強制轉換字符串你尋訪到字符串數組,以確保您得到正確的Split
過載,然後從結果中減去1,因爲分裂將返回所有圍繞搜索字符串字符串。同樣重要的是,如果搜索字符串在開始或結束時返回,則「無」選項將導致Split返回數組中的空字符串(您可以計數)。
使用正則表達式:
$a = "blah test <= goes here/blah test <= goes here/blah blah"
[regex]$regex = '<= goes here /'
$regex.matches($a).count
2
我有一堆在它管的字符串。我想知道有多少人,所以我用它來獲得它。只是另一種方式:)
$ExampleVar = "one|two|three|four|fivefive|six|seven";
$Occurrences = $ExampleVar.Split("|").GetUpperBound(0);
Write-Output "I've found $Occurrences pipe(s) in your string, sir!";
只是對BeastianSTI」出色答卷擴大:
尋找一條線的文件用分隔符的最大數量(行未知在運行時):
$myNewCount = 0
foreach ($line in [System.IO.File]::ReadLines("Filename")){
$fields = $line.Split("*").GetUpperBound(0);
If ($fields -gt $myNewCount)
{$myNewCount = $fields}
}
如果您嘗試匹配的字符串只有一個字符很長時間。 – 2017-06-29 06:05:44
你如何處理特殊字符?如果你的搜索字符串包含^ \ |(等他們將不得不逃脫。 – 2017-11-21 18:46:42