在路径中但不是转义字符时替换反斜杠

时间:2017-11-17 15:26:36

标签: regex

我们有一个更大的项目,其中几乎所有包含文件路径都是使用“Windows样式”反斜杠语法编写的,例如include 'foo\bar.baz'。现在我们也希望在Unix机器上运行poject,但是我们(显然)在路径名中有反斜杠的问题。 不幸的是,我无法用正斜杠替换所有反斜杠,因为它们用于创建换行符\n并在代码的其他部分中转义字符。

我试图摆弄RegEx,以便仅在用引号括起来匹配反斜杠字符

(["'])(?:(?=(\\?))\2.)*?\1

然后是另一个反斜杠或一个点。但是上面只能在引号内找到文本,而且我仍然坚持如何让它只匹配里面的斜杠。

非常感谢你的帮助!

P.S。:如果有任何帮助,我使用Atom作为编辑

1 个答案:

答案 0 :(得分:0)

https://regex101.com/r/U0MboP/1

(["'])(.+)\\\\?(.+)\1

这个正则表达式

这取代了https://regex101.com/r/U0MboP/2

\1\2/\3\1