在notepad ++或其他编辑器中使用正则表达式

时间:2016-09-22 21:22:48

标签: regex notepad++

有人可以帮我创建一个正则表达式来查找和替换吗?

原始陈述

rb[10];

rf[10];

eg[10];

替换为

rb[10-1];

rf[10-1];

eg[10];

数字" 10"可以在1到500之间变化。

我只想更改变量rf和rb,并保持不变。另外,我只想修改' []'之间的数字。并添加' -1'那个数字。变量rf,rb例如可以在线中的任何位置,而不一定在线的开始或结束处。

正如大家所见,我正在修改Fortran代码到C代码。我只想改变数组索引并保持一切不变。

2 个答案:

答案 0 :(得分:1)

您可以使用

\b(rb|rf)\[(\d+)\]

并替换为$1[$2-1]

<强>详情:

  • \b - 单词边界(前面的字符应该是非单词或行的开头)
  • (rb|rf) - 替换模式中的第1组(后来称为$1)捕获rbrf(注意r[bf]要好得多写作方式)
  • \[ - 文字[符号
  • (\d+) - 替换模式中的第2组(以后称为$2)捕获1个或多个数字(如果要匹配从1到{{1}的特定范围仅限500替换\d+
  • (?:500|[1-4]?\d{2}|[1-9]) - 文字\]符号

enter image description here

答案 1 :(得分:0)

你可以使用这样一个非常简单的正则表达式:

(\d+)

带有\1-1

的替换字符串

<强> Regex demo

enter image description here

更新:对于您的评论,您可以使用这样的正则表达式(使用相同的替换字符串):

(r[bf]\[\d+)