In the below example if I use single quotes for the -Replace operator ('Tag000: (.*)', 'Tag000: $1 hello $scategory') the capture group variable ($1) gets resolved at run time, while $scategory does not.
If I use double quotes (-replace "Tag000: (.*)", "Tag000: $1 hello $scategory") the $scategory variable works but then the capture group varibale is not recognised
$scategory = "my car is red "
$Read_Opus_Category= Get-Content -Path "C:\Temp\Chapter 6.ps1" -Stream multitags.txt -Raw
$Modified_Opus_Category= $Read_Opus_Category -replace 'Tag000: (.*)', "Tag000: $1 hello $scategory"
Am at a loss here, any help would be wonderfull
CodePudding user response:
Use ` to escape the $ in an expandable string literal:
$Read_Opus_Category -replace 'Tag000: (.*)', "Tag000: `$1 hello $scategory"
