Regex per restituire più righe tra due PAROLE: PowerShell


1

Sto cercando di usare la seguente espressione regolare:

(?<=----Old-------\n)(((.+\n)+)\n*?)(?=__________________________________________)

per ottenere più linee betwords

----Old-------
250096 - LT Security Role: Read Only, 250032 - Sales VIC3, 250083 -
Security Role: Base Security Role, 250080 - Security Role: Payment
Allocation, 250058 - Security Role: TFM Sales Consultant, 250103 - Web
Fleet SuperUser

Ma la stringa di selezione non restituisce nulla.

ero solito https://regex101.com/ e https://www.regexpal.com/ e il Regex funziona come previsto.

potresti aiutarmi per favore.

$ModifyOldRegex = "(?<=----Old-------\n)(((.+\n)+)\n*?)(?=__________________________________________)"    
$Description | Select-String  -Pattern $ModifyOldRegex.matches.Value

enter image description here


prova questo: select-string -pattern $ModifyOldRegex -AllMatches | % { $_.Matches } | % { $_.Value }
SimonS

Risposte:


0

Finalmente ho trovato il problema:

1- Usa get-Content -Raw per il \ n al lavoro // Non sono sicuro del perché

2- Modificato il Regex in

"(& Lt;? = ---- Vecchio -------) (. (+ \ N) +) (? = __________________________________________)"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.