我正在尝试解析一个项目的街道名称文件,并且需要删除修饰符(上/下/Old /新/北/东/南/西...)和结尾(街道/道路/道路/车道...),但我在正则表达式方面没有运气。
目前它的设置方式是程序将解析文件一行(即。街道),并检查它
我认为问题在于单词边界--例如,我需要以下转换……
老哈罗路->哈罗(即删除'Old‘前缀和'Way’结尾)
-> (去掉结尾的“Mead”)
Gold Lane -> Gold (仅删除结尾)
Eastley大道-> Eastly (去掉结尾)
上西部大道-> Western (删除前缀和结尾)
显然,像"South Street“这样的东西会删除这两个字符串--这是可以的,因为我可以丢弃一个空字符串。
有没有人能告诉我怎么做--我已经阅读了正则表达式并且尝试了几个小时!
发布于 2011-02-23 05:39:49
我将使用<list>或Array来存储这些值,然后可能使用foreach循环来根据列表或数组检查地址。然后使用.remove删除列表或数组项的每个实例。这里还有更多的东西,但这是大体的想法。
发布于 2011-02-23 05:51:22
我会使用string.split(“")将地址拆分成单词数组。然后取第一个单词,看看它是否存在于前缀列表中(即a或Array)。对最后一个单词和结尾也这样做。
为每个输入地址运行两个reg-ex表达式列表将非常耗时。使用我的逻辑应该会快很多,特别是在列表被排序和b搜索的情况下。
如果地址数据有点脏(例如,标点符号、双空格等),您可能想要做一些清理,因为像“Main St”这样的输入字符串将有比实际存在更多的‘word’(提示: Trim()和RegEx.Replace(“",”"))。
https://stackoverflow.com/questions/5084278
复制相似问题