![有没有可以将电话号码转换为 E.164 格式的工具?](https://linux22.com/image/1441677/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8F%AF%E4%BB%A5%E5%B0%86%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E8%BD%AC%E6%8D%A2%E4%B8%BA%20E.164%20%E6%A0%BC%E5%BC%8F%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%9F.png)
我正在寻找一种快速、简单且易于重复的解决方案,以便从电子表格的列中删除非数字数据,以便导入到 MySQL 数据库。示例:
(123)456-7890 fred
这些都是 Microsoft Excel 中的一个单元格;一列。条目不是采用标准格式。
- 大多数行中没有额外的名称,但有些行有。名称是多余的,我只需要数字。
- 对于国际拨号(我想是的,但我不确定)如果将电话号码视为整数,则需要担心前导零。但我并不担心。我想要的是整数形式的数字结果。
- 电话号码可以采用各种常见格式,不一定符合此 13 个字符的示例,区号放在括号中,后 4 位数字用连字符分隔。例如,它可能有一个前导数字,如 0 或 1,区号可以用连字符分隔,而不是放在括号中,等等。
我不想排除任何特定的方法,但该问题似乎适合于一种解决方案,即删除非数字字符,而不是尝试解密和解析所有可能的内容。
我将其导入 Google 电子表格进行备份。我是 Linux 用户,因此无法访问本机 Microsoft Excel,这就是它被接收的方式。但是,我可以访问 Libre Office。
我知道我可以使用MySQL 正则表达式用于此目的,如本主题中所述。
这提供了一些选项。我只是在想 LibreOffice 或 Google Spreadsheet 中可能有一个用于此的工具。我有点担心通过 Web 应用程序运行它,这取决于它是谁的 Web 应用程序。
所需的格式是:
答案1
好了,这是 Google 电子表格:
=SPLIT("(123)456-7890 fred"," ")
您可以将相同的公式扩展到所有记录
=SPLIT(A1," ")
或者您可以尝试使用数组公式进行更复杂的操作......
实际上,如果你正在寻找插入或更新语句,你可以从谷歌电子表格中获取它们,我推荐这个
https://docs.google.com/spreadsheets/d/1lWPRj_9uQW3BYUGUqKqW_NDlJ0VH0wUmf04ClVk6UEg/edit?usp=sharing
答案2
另一种方法是使用“查找和替换”将 ( 替换为空,) 替换为空,- 替换为空(如果有多种看起来像破折号的不同类型的字符,这一部分可能会很棘手,但如果它们都是标准破折号,则很容易),并将空格替换为空。在“查找”字段中输入四个字符,按四次“全部替换”按钮,即可完成。