【问题标题】:Notepad++ Regex Replace Capture Groups With NumbersNotepad++ 正则表达式用数字替换捕获组
【发布时间】:2021-03-10 21:23:40
【问题描述】:

所以我有一些我想在 Notepad++ 中替换的数字,我必须同时调整正值和负值,所以我的搜索看起来像这样:

v (.{0,1})13.500000

然后替换:

v $1 10.500000

除了我不想在捕获组引用和其他数字之间留有空格,但如果我把空格留出来,它什么都没有(没有捕获组 #110)。

如何“转义”它以便捕获组与字符文字分开而不插入不需要的字符?

我可以将其作为两个替代品进行,但我认为这一定是可能的,尽管我不知道如何搜索它。

示例源文本:

v 13.000000 19.0000000 8.000000
v 13.000000 19.0000000 9.000000
v -13.000000 19.0000000 9.000000
v -13.000000 19.0000000 8.000000

想要的结果:

v 10.000000 19.0000000 8.000000
v 10.000000 19.0000000 9.000000
v -10.000000 19.0000000 9.000000
v -10.000000 19.0000000 8.000000

【问题讨论】:

  • 目前还不清楚您在这里到底要什么。你能提供更多的例子吗?
  • @JohnKeyes 我添加了一个示例源和结果,这有帮助吗?
  • 确实如此,我看到@Edurado Escobar 已经为您指明了方向。
  • @JohnKeyes 我想我假设搜索字符串足够简单。我现在应该知道了,呵呵。

标签: regex notepad++


【解决方案1】:

试试这个替换:

v ${1}10.500000

【讨论】:

  • 啊哈,做到了。这是指什么?没有在 SE 上或通过 Google 搜索出现此符号。
  • 抱歉,polygenelubricants 在他的回答中解释了这一点 stackoverflow.com/questions/3466892/…
  • 该死的,为什么我的搜索没有找到那个帖子。谢谢。
【解决方案2】:

我将简单地尝试捕获除第一个数字之外的两组中的所有内容...

查找内容:(v.+?)\d+(.+$)
替换为:$110$2

【讨论】:

  • 你在Notepad++中试过了吗?在这里,我得到.000000 19.0000000 8.000000 而不是预期的结果。
  • 你知道$110的意思是第100个捕获组。这并不意味着捕获第一组后跟10。查看接受的答案。
  • 我为您学习正则表达式并尝试在这里编写新答案而鼓掌,但是用已接受的答案为旧问题添加质量较差的答案是没有用的。新答案只有在为解决问题添加新信息或新见解时才有用。
  • 当您回答 Notepad++ 问题时,请使用 Notepad++ 测试您的答案。您的答案在 Notepad++ 中根本不起作用。
  • 我毫不怀疑它适用于 您的 编辑器,但问题是关于 Notepad++ 并且答案必须适用于它。
猜你喜欢
  • 2013-06-27
  • 1970-01-01
  • 2012-04-01
  • 1970-01-01
  • 2012-01-02
  • 2016-02-11
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
相关资源
最近更新 更多