这里有一些我无法理解的东西,我希望得到一些帮助:)
目前,我在Excel电子表格中有字段,其中包含客户的地址和电话号码。但是,电话号码位于地址字段中每个字符串的末尾,例如
姓名,地址,有线电话,移动
Johnson,Oxton Road 2 Moreton CH45 9JB 07854213658 721 2569,
我需要它去
Johnson,Oxton Road 2 Moreton CH45 9JB,07854213658,721 2569
有什么想法吗?电话号码始终位于字符串的末尾
我也可以写c#,但我无法弄清楚从哪里开始
先谢谢你们
答案 0 :(得分:0)
如果您总是有地址(空间)固定电话(空间)移动
和移动设备始终是###(空格)####。
这是使用Excel执行此操作的方法。
A1: Johnson,2 Oxton Road Moreton CH45 9JB 07854213658 721 2569,
您可以获取字符串中的空格数:B1: =len(A1)-len(substitute(A1," ",""))
此后,您可以使用逗号替换正确的空格,再次使用替换:
C1: =substitute(A1," ",",",B1-2)
D1: =substitute(C1," ",",",B1-2)
我们两个都在进行B1-2,因为我们要替换的第二个空间已经从第7个空间变为第6个空间。
您仍然需要删除最后一个逗号,这可以通过以下方式完成:E1: =left(D1,len(D1)-1)
这可以嵌套:
B1: =left(substitute(substitute(A1," ",",",len(A1)-len(substitute(A1," ",""))-2)," ",",",len(A1)-len(substitute(A1," ",""))-2),len(A1)-1)
注意我只是使用旧字符串的长度,因为用两个逗号替换两个空格时长度不应该改变。
答案 1 :(得分:0)
在这里试试regex。它很难解析,但它对于一次解析文本数据非常有用:
var userInfo = "Johnson,2 Oxton Road Moreton CH45 9JB 07854213658 721 2569,";
var regEx = new System.Text.RegularExpressions.Regex("(?<address>.+) (?<landline>\\d{11}) (?<mobile>(\\d{3} \\d{4})|(\\d{7})),$");
regEx.Replace(userInfo, "${address},${landline},${mobile}")
结果将是:
&#34; Johnson,Oxton Road 2 Moreton CH45 9JB,07854213658,721 2569&#34;
您可能需要为数据调整正则表达式。但它必须比手动编辑快得多。
您可以找到您的功能regexlib。