【发布时间】:2017-11-17 15:26:36
【问题描述】:
我们有一个更大的项目,其中几乎所有包含文件路径都是使用“Windows 样式”反斜杠语法编写的,例如 include 'foo\bar.baz'。现在我们也想在 Unix 机器上运行这个项目,但是我们(显然)在路径名中的反斜杠方面遇到了麻烦。
不幸的是,我不能用正斜杠替换所有反斜杠,因为它们用于创建换行符 \n 并在代码的其他部分转义字符。
我尝试摆弄正则表达式,以便仅在用引号括起来时匹配反斜杠字符
(["'])(?:(?=(\\?))\2.)*?\1
后跟另一个反斜杠或一个点。但是上面只找到引号内的文本,我一直在想如何让它只匹配里面的斜线。
非常感谢您的帮助!
P.S.:如果有帮助,我会使用 Atom 作为编辑器
【问题讨论】:
-
我没有解决方案,只有一个建议:不要将文件分隔符从 win 替换为 unix,而应使用 java File.pathSeparator 中的常量(但可能有多种语言)。这应该对未来有所帮助。祝你好运!
-
感谢您的建议!不幸的是,我们已经将常量用于图形用户界面(Java 中),但是该项目的最大部分是用代数建模语言 GAMS 编写的(因为它是一个经济模型),它没有这样的常量跨度>
标签: regex