我试图编写一个正则表达式作为替换操作的一部分。
我有很多路径如下:
<ProjectReference Include="..\Common.Workflow\Common.Workflow.csproj">
<ProjectReference Include="..\Common.Workflow\Common.Workflow.Interfaces\Common.Workflow.Interfaces.csproj">
<ProjectReference Include="..\Common.Workflow\Common.Workflow.Persistence\Common.Workflow.Persistence.csproj">
<ProjectReference Include="..\Common.Workflow\Common.Workflow.Process\Common.Workflow.Process.csproj">
我需要在所有情况下替换Common.Workflow\
,除非它包含Common.Workflow.csproj
。
我正在将这些文件作为代码清理的一部分移动。
答案 0 :(得分:4)
将Common\.Workflow\\(?!Common\.Workflow\.csproj)
替换为您需要的内容。
答案 1 :(得分:2)
使用负面预测和负面观察,如下所示:
(?<!.*Common.Workflow.csproj)Common.Workflow\\(?!.*Common.Workflow.csproj)
说明:
(?<!.*Common.Workflow.csproj)
表示“Common.Workflow.csproj
在匹配前不得出现 (?!.*Common.Workflow.csproj)
表示“匹配后”Common.Workflow.csproj
不得出现 如果Common.Workflow.csproj
在输入中出现任何位置,此正则表达式将阻止匹配(您未指定仅在搜索后显示否定匹配)