gpt4 book ai didi

regex - Notepad++ 正则表达式替换为来自同一文件的捕获

转载 作者:行者123 更新时间:2023-12-04 15:29:46 25 4
gpt4 key购买 nike

我有一个包含以下几行的文件(精简示例,实际文件是 1.000+ 行):

...
type1.value1=60 <-- replace 60 with 72 from line 5
type1.value2=15 <-- replace 15 with 14 from line 6
type2.value1=50 <-- replace 50 with 72 from line 5
type2.value2=18 <-- replace 18 with 14 from line 6
type3.value1=72
type3.value2=14
...

我想用 type3 中的值替换 type(x) 中的所有值。有很多类型/值组合,所以我想避免手工操作。此外,我必须经常这样做。

Notepad++ Regex 查找/替换可以实现吗?

匹配表达式如下,其中第一组应保持不变,第二组应替换为另一个正则表达式的结果。
^type1.([\w]+)=([\S]+)

最佳答案

正则表达式:

type(?!3\.)\d+\.value(\d+)=\K\d+(?=[\s\S]*?type3\.value\1=(\d+))

用。。。来代替:
\2

解释:
  • type(?!3\.)\d+匹配除 3 以外的类型
  • \.value(\d+)=匹配每件事到 =但捕获数字
  • \K忘记匹配到现在
  • \d+匹配以下数字
  • (?=积极前瞻的开始
  • [\s\S]*?懒惰地匹配任何东西
  • type3\.value\1=最多与 type3 相同的值
  • (\d+)然后在 CP #2
  • 中捕获它的值
  • )正向前瞻结束

  • Live demo

    重点是匹配 valueX来自 type不同于 3然后寻找相同的 valueX来自 type3 .如 valueX是假设的,或者没有什么特别的东西可以看,那么在查找/替换功能中没有使用正则表达式的纯方法。

    关于regex - Notepad++ 正则表达式替换为来自同一文件的捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52092800/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com