2016-09-11 5 views
4

Как я могу использовать регулярное выражение для замены любого текста между кавычками для оператора -replace? Я могу заставить его работать со статическим текстом, но это может быть практически любой текст.Powershell: using -replace with regular expression

Пример:

$filecontent -replace 'AssemblyCopyright("text")', 'AssemblyCopyright("Copyright © 2016 myCompany")' | Out-File $file 

учитывая AssemblyCopyright("text") может быть на самом деле ничего, включая пустой

AssemblyCopyright("") 

ответ

3

Попробуйте как этот

... -replace 'AssemblyCopyright\("[^"]*"\)', 'AssemblyCopyright("Copyright © 2016 myCompany")' 

Обратите внимание, однако, что это будет предполагать, что текст внутри кавычек не содержит другой цитаты.


Пример из-за комментарии

GIF example

+0

Это намного ближе, что я получил. Единственная проблема заключается в том, что перед авторским правом есть символ A. Я думаю, что regex или powershell НЕ нравится символ авторского права – user5855178

+2

Я думаю, что это проблема с кодировкой на вашей стороне - я сделал быстрый тест в PoSh ISE без проблем - см. GIF – DAXaholic

+0

. Я изучаю его сейчас. Я думаю, вы, конечно, решили это. Просто нужен польский! : D Спасибо! : D – user5855178