永远的FM
:实在想不到楼主干嘛还要专门做个这样的软件
这软件还得不定期更新,例如现在Z6字头,在N1MM+上显示不出地区名称,但QRZ.COM上能查到是科索沃,LOTW有没有。。。。没看,到底承认独立没有?
(2016-08-19 11:09) 
没有必要质疑楼主的动机,楼主要开发自己的业余无线电应用软件,所以才问这个问题,值得支持!
所以,大家还是讨论在软件开发中,如何去识别呼号所属?
几乎所有的log软件或者和呼号相关的电台软件,都涉及到这个问题。他们通常有自己的一个数据库,有些是内置的,用户不能自己修改,但软件里面提供了整个数据更新的方法。有些软件不想去自己识别,就用第三方的,用什么LOTW、QRZ,人家错了也跟着错了。
也有一些软件是可以用户自己修改的,从软件默认的数据库里面,按需修改。例如logger32,因为有些呼号很特殊,从常规的匹配算法里面还不一定得到正确的结果,于是提供方法给用户自己修正DXCC字头数据库。最彻底的,对于一些特别的呼号,干脆在数据库文件里面,有一个完整的呼号说明。有些软件,还做得跟细致,说明这些呼号在DXCC规则里面的有效期,例如,在什么时间范围内是有效的。
另外,楼主需要严谨一些,一般在业余无线电范畴里面,说的是“DXCC国家”,不是“国家”!为了避免过多的无谓讨论,干脆说"DXCC字头“好了。
用正则表达式解决没有问题,但要先把特殊的呼号、字头在数据库里面描述了,最后采用正则表达式匹配出来。最后一点,任何软件都不是100%正确的,logger32、win-test、qrz、dxsummit上都经常出错,尤其是一些稀有的电台。