Regex 仅在powershell中特定单词后用字符替换空格

Regex 仅在powershell中特定单词后用字符替换空格,regex,string,powershell,Regex,String,Powershell,场景是用一些特殊的字符替换空格,但更改应该只发生在特定单词匹配的少数位置 例如 字符串:“$my name is$your name is” 所需的输出是:(因此空格替换为“=”,仅在起始字符为“$”的单词之后) 尝试: 试试这个: '$my name is $your name is' -replace "(\$[a-z]+)\s","$1=" (\$[a-z]+)匹配一个美元符号,后跟至少一个小写的a-z,并将其存储为$1\s表示后面必须跟一个空格$1=是替换字符串。它表示与括号中的正则表

场景是用一些特殊的字符替换空格,但更改应该只发生在特定单词匹配的少数位置

例如

字符串
“$my name is$your name is”

所需的输出是:(因此空格替换为
“=”
,仅在起始字符为
“$”
的单词之后)

尝试:

试试这个:

'$my name is $your name is' -replace "(\$[a-z]+)\s","$1="

(\$[a-z]+)匹配一个美元符号,后跟至少一个小写的a-z,并将其存储为$1\s表示后面必须跟一个空格$1=是替换字符串。它表示与括号中的正则表达式匹配的部分,后跟等号。

是的,这就是我要找的,谢谢分享演示。不知道为什么在powershell中它只显示那么多输出-没有得到结果,我的执行命令是:$out=“$my name is$your name is”-replace“(\$[a-z]+)\s”,“$1=”Write Output$out and Output is:name is name(使用powershell ISE)将$my和$your替换为空字符串。第一组引号必须是单引号。我会修复它。您也可以用\w替换[a-z]+,就像在另一个答案中一样。它更灵活。谢谢Patric-实际上我的输入字符串是用双引号括起来的,结果是在转换成单引号之后得到的。
"$my name is $your name is" -replace "(\$\w+)\s",'$1='
'$my name is $your name is' -replace "(\$[a-z]+)\s","$1="