有人可以帮我创建一个正则表达式来查找和替换吗?
原始陈述
rb[10];
rf[10];
eg[10];
替换为
rb[10-1];
rf[10-1];
eg[10];
数字" 10"可以在1到500之间变化。
我只想更改变量rf和rb,并保持不变。另外,我只想修改' []'之间的数字。并添加' -1'那个数字。变量rf,rb例如可以在线中的任何位置,而不一定在线的开始或结束处。
正如大家所见,我正在修改Fortran代码到C代码。我只想改变数组索引并保持一切不变。
答案 0 :(得分:1)
您可以使用
\b(rb|rf)\[(\d+)\]
并替换为$1[$2-1]
。
<强>详情:
\b
- 单词边界(前面的字符应该是非单词或行的开头)(rb|rf)
- 替换模式中的第1组(后来称为$1
)捕获rb
或rf
(注意r[bf]
要好得多写作方式)\[
- 文字[
符号(\d+)
- 替换模式中的第2组(以后称为$2
)捕获1个或多个数字(如果要匹配从1
到{{1}的特定范围仅限500
替换\d+
)(?:500|[1-4]?\d{2}|[1-9])
- 文字\]
符号答案 1 :(得分:0)
你可以使用这样一个非常简单的正则表达式:
(\d+)
带有\1-1
<强> Regex demo 强>
更新:对于您的评论,您可以使用这样的正则表达式(使用相同的替换字符串):
(r[bf]\[\d+)