gpt4 book ai didi

java - 匹配此字符串模式的正则表达式

转载 作者:行者123 更新时间:2023-12-02 00:18:27 25 4
gpt4 key购买 nike

我正在尝试构造一个正则表达式来匹配 GWT (Java) 程序中的以下字符串模式

该模式必须与以下格式的字符串匹配(基本上,这是我尝试发送到 Google map 以获取其坐标的地址字符串:

"2205 someStreet, Miami, USA"
OR
"someStreet, Miami, USA"
OR
"Miami, USA"
OR
"2205 somestreet Miami USA "
All other variations should not be allowed

到目前为止我已经尝试过这些正则表达式

"([0-9a-zA-Z]+ ((\\s){0,1} | (,){0,1} (\\s){0,1}) [0-9a-zA-Z]$)+ "
"^[0-9a-zA-Z]+,|\\s[0-9a-zA-Z]+"

虽然它们匹配一些可接受的字符串模式,但它们也匹配 Not Acceptable 字符串模式。

所以我想知道是否有人可以帮我解决这些问题。

谢谢

最佳答案

正如评论中提到的,最简单的方法是使用 4 个独立的正则表达式,而不是使用一个更容易出错的极其复杂的正则表达式。 (此外,如果您使用多个,您可以更轻松地添加新的可接受的模式。)

这些模式应该有效:

  1. 对于“2205 someStreet,迈阿密,美国”:\d+\w+、[A-Za-z]+、[A-Z]+

  2. 对于“美国迈阿密 someStreet”:\w+、[A-Za-z]+、[A-Z]+

  3. 对于“美国迈阿密”:[A-Za-z]+、[A-Z]+

  4. 对于“2205 somestreet Miami USA”:\d+\w+ [A-Za-z]+ [A-Za-z]+\s*

    <

我使用 \w 作为街道名称,以支持编号名称,例如“12th”。

当然,这些句子假设城市只是一个单词。如果是“纽约”呢?它还假设街道是一个单词——“123 Broadway, Denver, USA”——并且不支持“123 West 12th Drive”之类的内容。您可能需要更多地思考有效地址的确切构成。

Google API 通常非常强大,因此我希望 Google Maps API 能够很好地进行地址格式检测。通过尝试进行此类验证,您很可能只是在为自己做额外的工作。

关于java - 匹配此字符串模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11473078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com