Remover certos caracteres em cadeia longa (SMS)

0

Eu tenho um arquivo .xml longo de SMS com algumas mensagens neste formato:

<sms protocol="0" address=" (xxx) xxx-xxxx" date="1349121360000" type="2" subject="null" body="Body of the SMS is here" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" date_sent="0" readable_date="Oct 1, 2012 3:56:00 PM" contact_name="(Unknown)" />

Eu quero substituir somente o campo de endereço com um formato padronizado de

address=xxxxxxxxxx" em vez de address=" (xxx) xxx-xxxx"

Sem esse formato, os telefones não encadearão as mensagens corretamente. Eu tentei muitas combinações de expressões regulares, mas chegando seco.

    
por bootprobs 04.02.2016 / 19:56

1 resposta

0
  • Localize o quê: \s\((\d\d\d)\)\s(\d\d\d)-(\d\d\d\d)
  • Substituir por:

Assim, o regex está à procura de space + ( + dígito + dígito + dígito + ) + space + dígito + dígito + dígito + - + dígito + dígito + dígito + dígito

Os outros colchetes (sem escape) criam três grupos de captura em torno das seções Código de Área, Prefixo e Sufixo do número de telefone.

O "Substituir por" substitui o que foi encontrado pela pesquisa RegEx com o material encontrado nos 3 grupos de captura.

Antes:

address=" (123) 456-7890"

Depois:

address="1234567890"

    
por 04.02.2016 / 20:22

Tags