2013-12-11 2 views
0

Im пытается найти способ добавить +100 ко всем этим целым числам, но я продолжаю терпеть неудачу.Perl Regular Выражения суммы цифр

У меня есть эти строки

<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; 

ответ

4

В здравом мире, strict включен, этот код генерирует ошибку компиляции.

Если вы оставите это, он просто ничего не делает, потому что регулярное выражение не соответствует введенному вами вводу.

Если, как-то, это были для соответствия, значения, которые он ввел бы в выход, не могли иметь ничего общего со значениями на входе.

Возможно, вы ищете что-то вроде

s/(?<=")(\d+)(?=")/$1 + 100/eg; 

который является довольно небрежным способом разбора, что выглядит как XML, но будет делать хорошую работу, добавив 100 в любую последовательность цифр между двойными кавычками в любом случае ,

Смежные вопросы