удалить элемент msisdn на основе регулярных выражений - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь удалить поле msisdn из вызовов MO на TAP3.11, но оно не обрабатывает необходимое.

Я хочу установить условие, если Msisdn не запускаетсяс 962 затем удалите элемент.

Мой фон только с python, это первый раз с perl.Я использую его, потому что после поиска я считаю, что только Perl может обрабатывать TAP-файлы.

# Will scan all the calls for MTC's.
foreach $key ( @{$struct->{'transferBatch'}->{'callEventDetails'} } ) {

    foreach ( keys %{$key} ) {

        if ( $_ eq "mobileOriginatedCall" )
        {
            if ( defined $key->{$_}->{'basicCallInformation'} )
            {
                if ( defined $key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'} )
                {
                    if ( defined $key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'})
                    {
                        if ( defined $key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'}->{'msisdn'})
                        {
                            if ($key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'}->{'msisdn'} =~ /^[962]/)
                            {
                                $key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'}->{'msisdn'}=();
                            }
                        }
                    }
                }
            }
        }
    }
}

1 Ответ

1 голос
/ 15 мая 2019

Попробуйте с:

...
if ($key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'}->{'msisdn'} =~ /^(?!962)/)
{
    delete $key->{$_}->{'basicCallInformation'}->{'chargeableSubscriber'}->{'simChargeableSubscriber'}->{'msisdn'};
}

Изменения:

Для удаления ключа используйте delete

Для регулярного выражения "не начинается с" используйте: ^(?!WHATEVER), например ^(?!962)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...