2012-06-28 57 views
2

我想使用的MSBuild社区任务从OutputPath的MSBuild社区TAKS REGEXREPLACE从路径

这个月底删除斜杠删除斜杠是我到目前为止所。

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

不幸的是,该消息只是返回我的路径仍然与斜线结束。 路径是C:\ mydirectory中\

它看起来像我的表达是不正确

谁能帮助?

+0

尝试'表达=“\\ $”' – Qtax

回答

3

斜杠使用作为转义字符,所以在模式必须由另一个斜线逃脱斜线字符:

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

为了更好地理解逃逸看下面的例子:

  1. $代表结束的线/字符串
  2. \$代表美元符号字符
  3. \\表示反斜杠字符
  4. \\$表示在一行的末尾反斜杠字符/字符串
+0

谢谢 - 我已经测试了表达上一个javascript正则表达式测试仪和它的工作,但当我看着它时,我猜测这可能就是这种情况。再次感谢 :) – sianabanana