浙江省杭州市西湖区 艮山东路 XX号
对上面的内容进行分词:
【浙江】省【杭州】市【西湖】区 。。。。后面没必要
1,匹配省,返回值是0,同时记录省字符串的长度。
2,匹配市,返回值是0+省字符串长度或0+该长度+1,记录市返回索引值和市字符串长度。
3,匹配区,返回值是:匹配市返回的索引值+市字符串长度(或+1)
over
说说我的思想,仅供参考。
1,利用int a=string.IndexOf("省",0)将省,市,区这三个关键字前面的索引号获得,a,b,c
2,通过substring(0,a)获取省前面的字符串(例子中的浙江二字),同理可获得市前面的“杭州” 区前面的“西湖”,这样后面的字符不管是什么对前面没有影响
看看
楼主现在用这种匹配,怎么说呢,很不科学,如果要从一个地址来配对相应省市区,那么你在配对之前首先要考到的是 分词 ,而不是拿整句去匹配。具体断句的方法可以依据你省市区的位置。
另外就是从这个地址输入的时候着手来做,省市区这三个字段用选取,而非用户输入。选取后就可以取得准确的省市区了。