2019-08-21地址数据处理

问题背景:

有一堆地址数据,要从地址数据中抽取号、幢、栋之前的数字,并把数字对应的号、幢、栋标出来

问题解决:

初步思路:

这里的问题其实就是把字符串里的数字提取出来,再找到数字后面对应的号幢栋,使用c#,步骤如下:
1、利用正则提取数字,遍历得到数字列表
2、根据数字列表数字的位置遍历字符串,将字符串分割为0-第一个数字,第一个数字之后的值-第2个数字,
3、根据遍历得到的数字列表和字符串列表判断数字对应的是号幢栋,然后进行输出

初步思路的问题:

实际的数字表示有单纯的数字表示,也有类似1-2-2这一类的数字,显然,这类数字不能被分割,在碰到这个问题之后,首先想到的方法是遍历数字,看数字前后是否有‘-’,如果有,则进行连接,但实际处理逻辑十分复杂,遂放弃;后观察地址数据发现,'-'只会出现在数字中间,没有出现在中文字符之间,而数字与数字区分必然有中文,因此,想到把中文替换为特殊的符号‘&’,然后用此符号进行字符串的分割,由此得到改进思路

改进思路

1、利用正则替换字符串中文为‘&’
2、利用‘&’分割字符串
3、判断分割后的列表是否包含数字,如包含数字,则将此加入数字列表
4、进行初步思路的第2、3步

done!

你可能感兴趣的:(2019-08-21地址数据处理)