gpt4 book ai didi

regex - 在将其用于替换之前对正则表达式中捕获的数字进行计算

转载 作者:行者123 更新时间:2023-12-01 10:21:36 25 4
gpt4 key购买 nike

使用正则表达式,我能够找到一堆我想要替换的数字。但是,我想用另一个使用原始捕获数字计算的数字替换该数字。

在 notepad++ 中是否可以在替换部分中使用一种表达式?

编辑:也许是个奇怪的想法,但是否可以在搜索部分进行计算,生成第二个捕获的数字作为结果?

最佳答案

即使它可能的,它几乎肯定会是“困惑的”——为什么不用一个简单的脚本来代替呢?例如..

#!/usr/bin/env ruby
f = File.new("f1.txt", File::RDWR)
contents = f.read()

contents.gsub!(/\d+/){|m|
m.to_i + 1 # convert the current match to an integer, and add one
}

f.truncate(0) # empty the existing file
f.seek(0) # seek to the start of the file, before writing again
f.write(contents) # write modified file
f.close()

..和输出:

$ cat f1.txt
This was one: 1
This two two: 2
$ ruby replacer.rb
$ cat f1.txt
This was one: 2
This two two: 3

回复 jeroen 的评论,

I was actually interested if the possibility existed in the regular expression itself as they are so widespread

正则表达式实际上只是一种简单的模式匹配语法。做任何比搜索/替换匹配更高级的事情将取决于文本编辑器,但它的用处非常有限,并且可以通过大多数编辑器允许的脚本来实现(Notepad++ 有一个插件系统,虽然我我不知道它使用起来有多简单)。

基本上,如果正则表达式/搜索和替换无法实现您想要的结果,我会说要么使用您的编辑器脚本编写能力,要么使用外部脚本。

关于regex - 在将其用于替换之前对正则表达式中捕获的数字进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/646316/

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