Regex 记事本++或其他编辑器中的正则表达式

Regex 记事本++或其他编辑器中的正则表达式,regex,notepad++,Regex,Notepad++,有人能帮我创建一个用于查找和替换的正则表达式吗 原始报表 rb[10]; rf[10]; eg[10]; 取代 rb[10-1]; rf[10-1]; eg[10]; 数字10可以在1到500之间变化 我只想改变变量rf和rb,而保持eg不变。另外,我只想修改“[]”之间的数字,并将“-1”添加到该数字中。变量rf、rb、eg可以在行中的任何位置,不一定在行的开始或结束处 正如大家所看到的,我正在将Fortran代码修改为C代码。我只想更改数组索引并保持所有内容不变。您可以使用非常简

有人能帮我创建一个用于查找和替换的正则表达式吗

原始报表

rb[10];

rf[10];

eg[10];
取代

rb[10-1];

rf[10-1];

eg[10];
数字10可以在1到500之间变化

我只想改变变量rf和rb,而保持eg不变。另外,我只想修改“[]”之间的数字,并将“-1”添加到该数字中。变量rf、rb、eg可以在行中的任何位置,不一定在行的开始或结束处


正如大家所看到的,我正在将Fortran代码修改为C代码。我只想更改数组索引并保持所有内容不变。

您可以使用非常简单的正则表达式,如下所示:

(\d+)
以及一个替换字符串,\1-1

更新:对于您的注释,您可以使用这样的正则表达式和相同的替换字符串:

(r[bf]\[\d+)
你可以用

\b(rb|rf)\[(\d+)\]
并替换为$1[$2-1]

详情:

\字边界前面的字符应该是非字字符或行的开头 rb | rf-在替换模式中,第1组被称为$1,捕获rb或rf注释r[bf]是一种更好的书写方式 \字面上的[符号] \d+-第2组在替换模式中稍后称为$2,捕获1个或多个数字如果只想匹配从1到500的特定范围,请将\d+替换为?:500 |[1-4]?\d{2}|[1-9] \]-文字]符号
规则是什么?你试过什么让我们知道你真正想要的是什么吗?我只想改变变量rf和rb。我想保持变量eg不变。有没有一种方法可以在正则表达式中指定它。还有一种方法可以创建一个正则表达式来选择“[]”之间的文本,并用添加的“-1”替换文本。正如您所知,我正在将fortran代码转换为C代码。我只想更改数组索引,而保留所有其他数字不变。@user3357091,您可以使用这个正则表达式r[bf]\[\d+