Я пытаюсь извлечь / перехватить все 7-символьные строки alphanumeri c, которые идут после определенного c образца текста из текстового файла. Я получаю 7-символьные строки, но я также получаю с ними и другие "шаблонные" символы, которые мне не нужны. Я новичок в regex и PowerShell, и я действительно пробовал перед публикацией здесь.
Вот как выглядит текстовый файл:
{"hash":"hvwRn2V","title":"","description":null,"has_sound":false,"width":1920,"height":1080,"size":444751,"ext":".jpg","animated":false,"prefer_video":false,"looping":false,"datetime":"2016-02-08 09:27:18","edited":"0"},{"hash":"GakvoVT","title":"","description":null,"has_sound":false,"width":1920,"height":1080,"size":189987,"ext":".jpg","animated":false,"prefer_video":false,"looping":false,"datetime":"2016-02-08 09:27:14","edited":"0"},{"hash":"bn0lqId","title":"","description":null,"has_sound":false,"width":1920,"height":1080,"size":466105,"ext":".jpg","animated":false,"prefer_video":false,"looping":false,"datetime":"2016-02-08 09:27:11","edited":"0"},
Мне нужно получить все 7-символьные строки, которые попадают между двумя двойными кавычками, но только если они идут после hash":
. Пример из текста выше, мне нужно получить hvwRn2V
из hash":"hvwRn2V"
и так далее.
Я использую этот код PowerShell, и он работает, но он также дает мне текст шаблона hash":
в результате, который я не хочу:
$input_path = 'C:\Users\Jack\textfile.txt'
$output_file = 'C:\Users\Jack\output.txt'
$regex = 'hash":"([a-zA-Z_0-9]){7}'
Select-String -Path $input_path -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value } > $output_file
То, что я получаю, это :
hash":"hvwRn2V
hash":"GakvoVT
hash":"bn0lqId
Что я делаю не так?
Заранее благодарю за помощь.