删除长链(SMS)中的某些字符

删除长链(SMS)中的某些字符

我有一个很长的 .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

  • 找什么:\s\((\d\d\d)\)\s(\d\d\d)-(\d\d\d\d)
  • 用。。。来代替:\1\2\3

因此正则表达式正在寻找space+ (+ 数字+数字+数字 + )+ space+ 数字+数字+数字 + +-数字+数字+数字+数字。

其它(非转义)括号在电话号码的区号、前缀和后缀部分周围创建三个捕获组。

“替换为”将用在 3 个捕获组中找到的内容替换 RegEx 搜索找到的内容。

前:

address=" (123) 456-7890"

后:

address="1234567890"

相关内容