查找并替换为两个(有些)不相关的随机变量

Find and replace with two (somewhat) uncorrelated random variables

编辑: 我已经更改了我的主题名称以(希望)更准确地反映我的要求。我希望包括下面照片中圈出的两个变量,以免改变上述范围之外的任何内容。 https://i.stack.imgur.com/fXCtY.png

谢谢

   Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("AddlPointRadius")
   Hide(0)
   HideVar("ToggleTpRvsTpSqEval")
   HideUnused(0)
   ClrHide(1)
   Req(0)
   Uom("")
   MPTko("Pg")
   QtyTxt(0)
   Notes("")
   ProjDflt(0)
   LCol(0)
   LColTot(0)
   Dec(3)
   Dflt(".3")
   Max("5.000")
   Min("0.000")
  }

(原创) 我有一个非常大的文本文件,我正在尝试进行大量查找和替换。我的问题是我要替换的值都是随机的。有什么方法可以找到所有随机值并将其替换为单个值?我已经上传了我要替换的值的图片。我想获取所有随机值并将它们替换为 .13

这是一张带有值示例的图片

https://i.stack.imgur.com/flS18.png

非常感谢您抽出宝贵时间。

解决方案:

一种方法是使用查找和替换功能激活正则表达式。

  1. 打开查找和替换对话框
  2. 选中左下角的"Regular expression"框
  3. Dflt\("[.,0-9]*"\)
  4. 填充查找内容:
  5. 填充 替换为:Dflt(".13")

运行吧。

解释:

这个正则表达式表示以 Dflt(" 开头的任何字符串,后跟任意数量的 ., 或任意顺序的数字,然后是 ")

Find what 字段中的 \ 用于转义括号并允许它们完全匹配,因为 ()在正则表达式中有特定的功能。

搜索将匹配与此模式匹配的文件的任何部分,然后替换为您指定的内容。

是的,可以使用正则表达式。

这是一个例子。替换所有出现的 Dflt(".#")Dflt(".13")

  1. 打开搜索并替换 (Ctrl + H)
  2. 将搜索模式从普通更改为正则表达式
  3. 使用此正则表达式:'Find what' 框中的 (Dflt\(".[0-9]*"\))
  4. 在 'Replace with' 文本框中输入 Dflt\(".13"\)(将“.13”替换为您需要的任何值)
  5. 全部替换

  • Ctrl+H
  • 查找内容:Num\s*\{[^}]+Name\("AddlPointRadius"\)[^}]+Dflt\("\K[^"]+
  • 替换为:.13
  • 选中环绕
  • 检查正则表达式
  • 全部替换

解释:

Num\s*\{                    # literally
[^}]+                       # 1 or more non closing curly brace
Name\("AddlPointRadius"\)   # literally
[^}]+                       # 1 or more non closing curly brace
Dflt\("                     # literally
\K                          # forget all we have seen until this position
[^"]+                       # 1 or more non quote (i.e. the value to be changed)

替换:

.13         # the new value

给定:(我已经缩短了你的例子)

Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("AddlPointRadius")
   LColTot(0)
   Dec(3)
   Dflt(".3")
   Max("5.000")
   Min("0.000")
}
Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("SomethingElse")
   LColTot(0)
   Dec(3)
   Dflt(".3")
   Max("5.000")
   Min("0.000")
}
Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("AddlPointRadius")
   LColTot(0)
   Dec(3)
   Dflt(".3")
   Max("5.000")
   Min("0.000")
}

给定示例的结果:

Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("AddlPointRadius")
   LColTot(0)
   Dec(3)
   Dflt(".13")
   Max("5.000")
   Min("0.000")
}
Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("SomethingElse")
   LColTot(0)
   Dec(3)
   Dflt(".3")
   Max("5.000")
   Min("0.000")
}
Num {
   Desc("AddlPointRadius (Enter 1 in NOTES To Unhide \"MixPointMod\")")
   Name("AddlPointRadius")
   LColTot(0)
   Dec(3)
   Dflt(".13")
   Max("5.000")
   Min("0.000")
}

屏幕截图: