我想替换
中的?
"EquipmentInfo["?"] = "<iframe src='http://bing.fr'></iframe>";"
由变量。
我试过了:
(get-content C:\word.txt) -replace '?', '$obj' | Set-Content C:\word.txt
答案 0 :(得分:3)
我会使用积极的lookbehind来确保找到正确的问号。此外,您必须在替换时使用双引号,因为您要替换变量:
(get-content C:\word.txt -raw) -replace '(?<=EquipmentInfo\[")\?', "$obj" | Set-Content C:\word.txt
使用正则表达式:
(?<=EquipmentInfo\[")\?
答案 1 :(得分:2)
此回答解释原始问题 jisaak's helpful answer提供全面解决方案。
-replace
运算符将正则表达式作为RHS上的第一个操作数,其中?
是具有特殊含义的所谓元字符。
因此,要使用文字 ?
,您必须使用\
转义:
(get-content C:\word.txt) -replace '\?', $obj
注意:请勿在{{1}}周围使用'...'
,除非您需要 literal 字符串$obj
;通常,要引用字符串中的变量,必须使用$obj
,但这不是必需的。
一个带文字的简单示例:
"..."