gpt4 book ai didi

java - 如何使用 Java 使正则表达式查找街道/道路?

转载 作者:行者123 更新时间:2023-11-29 08:11:43 25 4
gpt4 key购买 nike

我正在尝试用 Java 制作一个正则表达式,它可以粗略地用于匹配某些街道名称。我想这样做,以便给定以下字符串:

Then someone decided to go to the high street for a drink

将匹配术语“大街”。所以就是前面的单词和“street”这个词来获取街道名称。我试过这样的事情:

Pattern.compile("(\\w+\\s*(road|street|square|rd|st|sq)\\W+)");

但是这是失败的,好像Java是想匹配整个句子的,而我只是对几个词感兴趣。我也尝试了一些勉强的量词,但似乎没有任何效果。

任何帮助/建议将不胜感激。谢谢!

最佳答案

确保使用 Matcher.find 而不是 Matcher.matches

这在我的机器上运行良好:

String s = "Then someone decided to go to the high street for a drink";

Pattern p = Pattern.compile("(\\w+\\s*(road|street|square|rd|st|sq)\\W+)");

Matcher m = p.matcher(s);

System.out.println(m.find()); // prints true
System.out.println(m.group()); // prints "high street"

你也可以稍微简化一下表达式:

\w+\s*(road|street|square|rd|st|sq)\W

\w+\s*(r(oa)?d|st(reet)?|sq(uare)?)\W

(给出与上面相同的输出)

关于java - 如何使用 Java 使正则表达式查找街道/道路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7791435/

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