我有一个json文件和wnat来替换单词中的每个字母î,但不是在开头或结尾.在VS代码的查找和替换窗口中,我使用了这个正则表达式:[a-z][î][a-z],但我不知道如何在不影响与正则表达式对应的其他字母的情况下替换î(例如,从"S"到"sunt",而不是"unt",这是因为"S"是用正则表达式 Select 的).所以我需要另一个正则表达式,但当我try 插入类似[a-z][u][a-z]$1VS的代码时,代码会直接将结果替换为"$1"(因为我不认为它在替换输入中被视为正则表达式). 我不能替换文件中的每一个结果,因为我有19999+个结果.

推荐答案

为了在不影响单词中其他字母的情况下实现所需的替换,可以在您的正则表达式模式中使用正向前视和后视.遗憾的是,Visual Studio代码的查找和替换不直接支持查找.但是,我们可以通过使用捕获组和反向引用来解决此限制.以下是你如何做到这一点:

查找数:([a-z])î(?=[a-z]) 替换:$1u

解释:

  • ([a-z]):这是一个捕获组,匹配任何小写字母并将其捕获到组1中.
  • î:匹配您要替换的特定字母‘ç’.
  • (?=[a-z]):这是一个肯定的先行断言,它确保字母‘ç’后面紧跟另一个小写字母,而不在匹配中包括后面的字母.

在替换中,我们使用$1来引用第一组捕获的字母,然后添加字母‘u’,它取代了‘ç’.

请注意,此解决方法特定于Visual Studio代码的查找和替换功能.在其他正则表达式引擎或编程语言中,您可以直接使用lookback.

若要将此替换应用于您的JSON文件,请在Visual Studio代码中执行以下步骤:

  1. Ctrl + H打开"查找和替换"窗口.
  2. 确保启用了"Regex"选项(单击左侧的.*按钮).
  3. 在"Find"字段中输入正则表达式模式([a-z])î(?=[a-z]).
  4. 在"Replace"字段中输入替换$1u.
  5. 根据需要,点击"替换"或"全部替换",有 Select 地执行替换.

这应该会在不影响周围字母的情况下,将单词中间出现的所有单词替换为"u".我希望这能帮到你.

Json相关问答推荐

Jolt Transformation—如果子对象为空,则将父对象更新为空

如何获取brew list作为JSON输出

kotlinx-serialization:如何将具有不同类型对象的JsonArray转换为同一个Class

在ConvertFrom-Json之后需要从PowerShell对象中获取数据

在Ansible中从json中提取特定数据

使用 jq 重新格式化 JSON 输出

从包含 JSON 对象序列的文件中获取第一个 JSON 对象

GitHub Pages无法正确显示我的项目

如何将属性拆分为嵌套的JSON内容?

条件性构建/修改嵌套对象数组

Jolt - 在同一级别添加时组合值的问题

Jackson 中的 readValue 和 readTree:何时使用哪个?

字符串的 Gson 数组到 JsonArray

如何在 json 编码字符串内的子数组数据周围添加方括号?

jQuery循环.each()JSON键/值不起作用

如何使用 Serde 反序列化带有自定义函数的可选字段?

从 Json 对象 Android 中获取字符串值

春天:返回@ResponseBodyResponseEntity>

Backbone.js 模型与集合

如何在 postgresql 9.3 中循环 JSON 数组