MSBuild社区Taks RegexReplace从路径中删除尾部斜杠

时间:2012-06-28 15:05:17

标签: regex msbuild msbuildcommunitytasks

我正在尝试使用MSBuild社区任务从OutputPath的末尾删除斜杠

这是我到目前为止所做的。

<RegexReplace Input="$(OutputPath)" Expression="\$" Replacement="" Count="1">
 <Output ItemName="FormattedOutputPath" TaskParameter="Output" />
</RegexReplace>
<Message Text="@(FormattedOutputPath)"/>

不幸的是,该消息只返回我的路径,结尾处有斜杠。 路径为C:\ MyDirectory \

看起来我的表情不正确

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

Slash用作转义字符,所以在模式中你必须用另一个斜杠来转义斜杠字符:

<RegexReplace Input="$(OutputPath)" Expression="\\$" Replacement="" Count="1">
  <Output ItemName="FormattedOutputPath" TaskParameter="Output" />
</RegexReplace>
<Message Text="@(FormattedOutputPath)"/>

为了更好地理解转义,请参阅以下示例:

  1. $表示行尾/字符串
  2. \$代表美元符号字符
  3. \\代表斜线字符
  4. \\$表示行/字符串
  5. 末尾的斜杠字符