Java 如何确定字符串最后是否包含一组数字

Java 如何确定字符串最后是否包含一组数字,java,regex,string,Java,Regex,String,目前,我正在努力解决地址规范化问题。开始时,ul=street。在我的国家,在大多数情况下,出现的街道格式为“ul.Marii Skłodowskij Curie”,街道末端没有数字,但在特定情况下,出现的街道格式为“ul.Dywizjonu 303”,其中303不是门牌号 我有一个地址字典,我需要在那里检查街道是否存在。第一个例子很容易验证,因为我删除了字符串末尾的所有数字,并将结果字符串与字典进行比较,但另一方面,在第二个例子中,如果我删除字符串末尾的所有数字,我将得到“ul.Dywizjo

目前,我正在努力解决地址规范化问题。开始时,
ul=street
。在我的国家,在大多数情况下,出现的街道格式为“ul.Marii Skłodowskij Curie”,街道末端没有数字,但在特定情况下,出现的街道格式为“ul.Dywizjonu 303”,其中303不是门牌号

我有一个地址字典,我需要在那里检查街道是否存在。第一个例子很容易验证,因为我删除了字符串末尾的所有数字,并将结果字符串与字典进行比较,但另一方面,在第二个例子中,如果我删除字符串末尾的所有数字,我将得到“ul.Dywizjonu”,不带303,它以正常方式与street集成

我的问题是,是否可以从字符串的末尾去除多余的数字和字符,并从字符串中获取最后一对或单个数字:

例如:

“ul.Warszawska 150 12/45”->分离结果150和ul。沃萨夫斯卡

“ul.Warszawska 17/19”->将结果17和ul分开。沃萨夫斯卡

“ul.Lipca 80r.90”->分离结果90和ul。利普卡80r

“ul.Warszawska 14 10/120/2b”->分离结果14和ul。沃萨夫斯卡

目前,我从字符串中删除了所有冗余的多空格,并按空格分割,但我完全不知道下一步该怎么做才能得到如上所述的理想结果

提前感谢您的帮助

  • 空间上拆分
  • 检查最后两个条目是否有数字。

    a。两个都有数字:检查最后一个条目是否有斜杠。

    i. has slash: rebuild the string without the last entry.<br>
    ii. don't have slash: rebuild the complete string.<br>
    
    结果

    ul. Warszawska 150
    ul. Warszawska 17
    ul. Lipca 80r. 90
    ul. Warszawska 14
    BUILD SUCCESSFUL (total time: 0 seconds)
    

    1.空间分割。2.检查最后两个数组项是否包含数字:如果两个数组项都包含数字,则丢弃最后一个数组项。如果只有最后一个条目包含“/”上的数字分割。保留第一个条目。垃圾桶休息。如果我没弄错的话。知道一个号码是否是街道名称的一部分的规则是什么?为什么303是ul的一部分。Dywizjonu 303但14不属于ul的一部分。华沙沃斯卡?我的直觉是,你必须在搜索到的街道名称中添加标记,直到它在你的街道列表中找到匹配项为止
    ul. Warszawska 150
    ul. Warszawska 17
    ul. Lipca 80r. 90
    ul. Warszawska 14
    BUILD SUCCESSFUL (total time: 0 seconds)