可能重复:
电话号码的正则表达式
我对正则表达式有点陌生,所以我还不知道它的可能性。因此,我不知道解决这个问题是否会很困难。
我有非常自由格式化的电话字符串,需要以固定的方式格式化它们(至少尽力而为)。“899-123-4-45;22-56-87”、“5 99-25-31-71”、“577-345-678,274-89-56”。
这是我知道的信息:
新的固定电话以 2-XX-XX-XX 开头,后跟 6 个数字(它们之间可以是两种类型的分隔符,“-”或“”,其中数字未知)。
旧固定电话仅包含 6 个号码 XX-XX-XX。
旧手机代码包含 8XX-YY-YY-YY 9 个号码。第一个是8。XX是运营商的代码(不是都知道)。
新的手机代码包含 5XX-YY-YY 9 个号码,唯一的区别是第一个号码。
一些记录包含旧固定电话代码、新固定电话代码、旧手机代码和新手机代码。
我需要以新格式存储所有数字,只有两个分隔符“-”和“,”。例如:“599-12-34-56,2-45-61-34”、“2-45-65-12”、“574-12-34-56”。
我只是不知道从哪里开始。我是否应该尝试只用包含数字的字符串拆分大字符串,然后只检索数字并确定它是哪种格式?还是有更简单的解决方案?
你会如何解析这个字符串:“574-12-34-56; 2 456 324, 455-566 2 22 40 56”?首先将这些分成3部分?我可以用“;”来分割它吗 或“”或“,”?那么我应该只检索数字并确定它们的样式并正确格式化吗?