转换 href tel 标签中的数字

转换 href tel 标签中的数字

我有一个目录,里面有数百个电话号码,格式为“xx.xx.xx.xx.xx”。其中“x”是从 0 到 9 的数字。2 个数字的组由一个点分隔。我正在寻找一个正则表达式,它可以将最后 9 个数字整合在一起,语法如下

<a href="tel:+33XXXXXXXXX">xx.xx.xx.xx.xx</a>

法国国际分机号(+33)取代了始终以 0 开头的第一个数字。如果可能的话,我想保留标签之间的原始格式。

答案1

测试:

$ 回显“01.23.45.67.89” \
| sed -re 's,^([0-9])([0-9])\.([0-9]{2})\.([0-9]{2})\.([0-9]{2})\.([0-9]{2})$,<a href="tel:+33\2\3\4\5\6">\1\2.\3.\4.\5.\6</a>,'
<a href="电话:+33123456789">01.23.45.67.89</a>

实际使用中:用一个文件,每行一个“xx.xx.xx.xx.xx”

$ cat 电话号码.txt \
| sed -re 's,^([0-9])([0-9])\.([0-9]{2})\.([0-9]{2})\.([0-9]{2})\.([0-9]{2})$,<a href="tel:+33\2\3\4\5\6">\1\2.\3.\4.\5.\6</a>,'
<a href="电话:+33123456789">01.23.45.67.89</a>

后者未经测试。

答案2

如果您选择 Notepad++,则可以执行以下操作:

(请注意,可以在许多工具中使用):

  • Ctrl+H
  • 找什么:^(\d)(\d)\.(\d\d)\.(\d\d)\.(\d\d)\.(\d\d)$
  • 用。。。来代替:<a href="33$2$3$4$5$6">$0</a>
  • 查看 环绕
  • 查看 正则表达式
  • Replace all

演示与说明

解释:

^               # beginning of line
    (\d)        # group 1, first digit (zero)
    (\d)        # group 2, second digit (area code)
    \.          # a dot
    (\d\d)      # group 3, 2 digits
    \.          # a dot
    (\d\d)      # group 4, 2 digits
    \.          # a dot
    (\d\d)      # group 5, 2 digits
    \.          # a dot
    (\d\d)      # group 6, 2 digits
$               # end of line

替代品:

<a href="       # literally
33              # 33
$2              # content of group 2, the second digit (area code)
$3              # content of group 3
$4              # content of group 4
$5              # content of group 5
$6              # content of group 6
">              # literally
$0              # content of group 0, the whole match
</a>            # end tag

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案3

OSX 终端返回以下错误。

上次登录:2011 年 4 月 21 日星期二 16:07:46,登录于 ttys000 pc9:~ MY-USERNAME$ cd ~/Downloads/sample_dir/tel.html -bash: cd: /Users/MY-USERNAME/Downloads/sample_dir/tel.html: 不是目录 pc9:~ MY-USERNAME$ $ echo "01.23.45.67.89" \

| sed -re 's,^([0-9])([0-9]).([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{2})$,\1\2.\3.\4.\5.\6,' -bash: $: 未找到命令 sed: 非法选项 -- r 用法:sed 脚本 [-Ealn] [-i 扩展名] [文件 ...] sed [-Ealn] [-i 扩展名] [-e 脚本] ... [-f 脚本文件] ... [文件 ...] pc9:~ MY-USERNAME$ 01.23.45.67.89 -bash: 意外标记“换行符”附近出现语法错误

相关内容