2

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

这就是我到目前为止所拥有的。

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

不幸的是,该消息只是返回我的路径,最后仍然带有斜杠。路径是 C:\MyDirectory\

看来我的表达不正确

任何人都可以帮忙吗?

4

1 回答 1

3

斜杠用作转义字符,因此在模式中您必须用另一个斜杠转义斜杠字符:

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

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

  1. $表示行/字符串的结尾
  2. \$代表美元符号字符
  3. \\表示斜线字符
  4. \\$表示行/字符串末尾的斜线字符
于 2012-06-28T23:12:29.907 回答