增加字符串中的数字

增加字符串中的数字

我一直在寻找一种方法来增加我的长字符串中的数字:

run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite001.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite002.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite003.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Bio-Formats", "open=/Users/m-a/Desktop/test_stabilite004.nd2 color_mode=Default rois_import=[ROI manager] split_channels view=Hyperstack stack_order=XYCZT series_1");
run("Concatenate...", "  title=TL open image1=[test_stabilite001.nd2 - test_stabilite001.nd2 (series 01) - C=0] image2=[test_stabilite002.nd2 - test_stabilite002.nd2 (series 01) - C=0] image3=[test_stabilite003.nd2 - test_stabilite003.nd2 (series 01) - C=0] image4=[test_stabilite004.nd2 - test_stabilite004.nd2 (series 01) - C=0] image5=[-- None --]");
run("Concatenate...", "  title=GFP open image1=[test_stabilite001.nd2 - test_stabilite001.nd2 (series 01) - C=1] image2=[test_stabilite002.nd2 - test_stabilite002.nd2 (series 01) - C=1] image3=[test_stabilite003.nd2 - test_stabilite003.nd2 (series 01) - C=1] image4=[test_stabilite004.nd2 - test_stabilite004.nd2 (series 01) - C=1] image5=[-- None --]");
selectWindow("TL");
saveAs("Tiff", "/Users/m-a/Desktop/Test/Test_Serie1_TL.tif");
selectWindow("GFP");
saveAs("Tiff", "/Users/m-a/Desktop/Test/Test_Serie1_GFP.tif");
selectWindow("Test_Serie1_TL.tif");
close();
selectWindow("Test_Serie1_GFP.tif");
close();

为了节省时间,我想找到一种简单的方法,将“series_1”、“series 01”和“Serie1”替换为“series_n+1”、“series 0n+1”和“Serien+1”约 50 次。我找了一段时间,但找不到任何可以帮助我的东西。

如能得到帮助将不胜感激:)

答案1

您可以在 vim 中使用以下命令执行此操作:

g/[Ss]erie\(s[ _]\|\)\d*/ normal gn^An^An^An^A

要使用它,请在 vim 中打开文本示例,然后按ESC,然后:,然后按上面的行。但是,每当^A需要输入时,请输入Control- v Control- a,这将插入文字^A符号。它应该只显示为^A

这将找到示例中的所有模式,并将其中的数字加一。它的工作原理如下:

  • ESC :将进入 vim 中的命令模式。
  • 执行的命令是g命令。它将在与某些正则表达式匹配的所有行上运行命令。
  • [Ss]erie\(s[ _]\|\)\d*是应匹配您请求的所有模式的正则表达式。即serie以大写字母或非大写字母开头s,后跟s一个空格或_,或者后跟任何内容。然后跟一个数字。
  • 该命令每一行执行的命令g实际上将是8条命令:
    • normal只是一个关键字,告诉 vim 后面跟着的不是命令行模式命令,但是普通的模式命令。也就是您在 vim 中正常编辑时通常输入的内容。
    • gn将光标移动到找到最后一个匹配项的位置
    • Control-a增加数字(当您手动将光标移动到该位置并按下它时这也有效)。
    • n移至下一场比赛。此操作重复 3 次。

这需要 vim 7.4 及以上版本才能工作。另外,如果一行中出现超过 4 个模式,则需要进行调整。

我应该指出,使用脚本或编辑器魔法来更改程序代码是一种相当愚蠢的工作方式。改进程序以适当的方式以编程方式生成字符串会更好。

注意:您的代码如下所示图像如果是这样的话,这里有一份文件可以帮助你取得更好的成绩:http://www.sussex.ac.uk/gdsc/intranet/pdfs/ImageJBatchProcessing.pdf

相关内容