Как получить персонаж, который находится между двумя другими персонажами - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть переменная, в которой находятся каталоги моего компьютера. Я хочу посчитать и получить разделы, которые я напишу внутри переменной.

$test = "D:\hey,D:\bye,C:\AnotherDirectory"

Я хочу получить такой вывод:

D=2
C=1

Если возможно, я бы хотел поместить их в переменную. Я посмотрел немного в регулярном выражении и обнаружил, что с этим кодом [A-Z]: он соответствует D:, D: и C: в https://regexr.com/,, но я понятия не имею, как его реализовать или как получить значение, которое он получает после.

1 Ответ

3 голосов
/ 29 апреля 2019

Вы можете получить список частот каждой буквы диска, как это:

$test = "D:\hey,D:\bye,C:\AnotherDirectory"

[Regex]::matches($test.Split(','), "[a-zA-Z](?=:)") | 
    Group-Object Value -NoElement

, который дает вывод, как это:

Count Name                     
----- ----                     
    2 D                        
    1 C

Если вы хотите их в формате C=1, тогда требуется только небольшое изменение:

[Regex]::matches($test.Split(','), "[a-zA-Z](?=:)") | 
    Group-Object Value -NoElement |
        ForEach-Object {
            "$($_.Name)=$($_.Count)"
        }

, которое производит:

D=2
C=1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...