Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Replace 如何在VisualStudio代码中用查找和替换替换两个单词?_Replace_Visual Studio Code - Fatal编程技术网

Replace 如何在VisualStudio代码中用查找和替换替换两个单词?

Replace 如何在VisualStudio代码中用查找和替换替换两个单词?,replace,visual-studio-code,Replace,Visual Studio Code,我正在处理的项目有许多yaml文件,其中lat:和long:的所有实例都需要交换,因为数据的标签不正确 例如,以下内容: - lat: "-82.645672" long: '44.941747' title: "Item 1" - lat: "-82.645744" long: '44.940731' title: "Item 2" - lat: "-82.645744" long: '44.940731' title: "Item 3" - lat: "-82.646

我正在处理的项目有许多yaml文件,其中
lat:
long:
的所有实例都需要交换,因为数据的标签不正确

例如,以下内容:

- lat: "-82.645672"
  long: '44.941747'
  title: "Item 1"
- lat: "-82.645744"
  long: '44.940731'
  title: "Item 2"
- lat: "-82.645744"
  long: '44.940731'
  title: "Item 3"
- lat: "-82.646599"
  long: '44.941441'
  title: "Item 4"
需要如下所示:

- long: "-82.645672"
  lat: '44.941747'
  title: "Item 1"
- long: "-82.645744"
  lat: '44.940731'
  title: "Item 2"
- long: "-82.645744"
  lat: '44.940731'
  title: "Item 3"
- long: "-82.646599"
  lat: '44.941441'
  title: "Item 4"
我正在努力找出如何在全球范围内交换这两个词。我查看了可用的插件,但它们似乎只适用于您正在编辑的当前文件,并且只突出显示了几个单词(例如,像这个)。我正在考虑使用正则表达式作为一种可能的解决方案,但只能找到方法对同一行上的单词重新排序。是否有可以在查找和替换中使用的正则表达式来交换可以应用于项目中所有文件的两个字?

,扩展名为

  "replacerules.rules": {
    "Swap lat-long 1": {
      "find": ["lat","long"],
      "replace": ["XYZ","ABC"]
    },
    "Swap lat-long 2": {
      "find": ["XYZ","ABC"],
      "replace": ["long","lat"]
    }
  },
  "replacerules.rulesets": {
    "Swap lat-long": {
        "rules": [
            "Swap lat-long 1",
            "Swap lat-long 2"
        ]
    }
  }
然后执行命令:
替换规则:运行规则集…
尝试以下正则表达式:

^(-\s+)(lat)(.*)(\n\s*)(long)
//我在这里做了一个小改动

并替换为:

$1$5$3$4$2

在“查找/替换”窗口小部件中,这对我来说效果非常好,但在“跨文件搜索/替换”面板中,这一点不太好。为什么?请参阅此“已解决”问题:

这个问题似乎表明它是暂时“修复”的,但似乎没有

我本打算发行新的一期,但在本周早些时候发现了以下内容:。所以希望在这次迭代中它能被修复

我很高兴地报告,该漏洞已在2019-09-16《内部人员构建》中得到修复!!在Insider的构建中演示如下:


谢谢!这就是我要找的正则表达式的类型,只是看起来它与VS代码的正则表达式find+replace不兼容。我将试着看看我是否能弄清楚为什么不能正确地查找+替换…似乎“替换规则”扩展不能跨文件工作?为什么不使用一个小型python程序来实现这一点。或者写一个简单的awk,sed脚本?