У меня есть длинный XML-файл SMS с некоторыми сообщениями в этом формате:

<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)" />

Я хочу заменить только поле адреса стандартным форматом

address=xxxxxxxxxx" а не address=" (xxx) xxx-xxxx"

Без этого формата телефоны не обрабатывают сообщения должным образом. Я перепробовал много комбинаций регулярных выражений, но безуспешно.

1 ответ1

0
  • Найти что: \s\((\d\d\d)\)\s(\d\d\d)-(\d\d\d\d)
  • Заменить на: \1\2\3

Таким образом, регулярное выражение ищет space + ( + цифра + цифра + цифра + ) + space + цифра + цифра + цифра + - + цифра + цифра + цифра + цифра.

Другие (не экранированные) квадратные скобки создают три группы захвата вокруг разделов телефонного кода, кода города и суффикса.

"Заменить на" заменяет то, что было найдено поиском RegEx, материалом, найденным в 3 группах захвата.

До:

address=" (123) 456-7890"

После:

address="1234567890"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .