Perl正则表达式总和数

时间:2013-12-11 01:18:02

标签: regex perl math

我试图找到一种方法将+100添加到所有这些整数但是我一直在失败。

我有这些行

  <devio1="875" devio2="7779" devio3="5635" devio4="154"/>
  <devio1="765" devio2="74779" devio3="31535" devio4="544"/>
  <devio1="4335" devio2="13" devio3="55635" devio4="1565"/>

我只是不能让它在一个好的时尚中工作。它从不向整数添加100,它只替换它们。有什么事?这是使用正则表达式的错误方法吗?我必须使用其他方法吗?

 $d1 += 100;
 $d2 += 100;
 $d3 += 100;
 $d4 += 100;
 $d5 += 100;
 $d6 += 100;

s/<devio1="\d+" devio2="\d+" devio3="\d+" devio4="\d+" devio5="\d+"    devio6="\d+"\/>/<devio1="$d1" devio2="$d3" devio3="$d4" devio4="$d5" devio5="$d6" devio1="$d7"\/>/g;

1 个答案:

答案 0 :(得分:4)

在一个理智的世界中,如果启用了strict,则此代码会生成编译错误。

如果你把它排除在外,它只会做什么,因为正则表达式与你正在显示的输入不匹配。

如果某种方式,它 匹配,它输入输出的值可能与输入中的值无关。

也许你正在寻找像

这样的东西
s/(?<=")(\d+)(?=")/$1 + 100/eg;

这是解析看起来像XML的非常草率的方式,但无论如何都会很好地在双引号之间的任何数字序列中添加100。