gpt4 book ai didi

java - 在文本中查找国家/地区的正则表达式?

转载 作者:行者123 更新时间:2023-11-29 05:57:06 26 4
gpt4 key购买 nike

我有一个文本集合,我想在其中提取列出的所有国家/地区的所有实例。到目前为止,我能够根据以下代码将所有国家/地区填充到一个集合中:

  Set<String> countries = new TreeSet<String>();
Locale[] locales = Locale.getAvailableLocales();
for (Locale locale : locales) {
countries.add(locale.getDisplayCountry());
}

我当然可以为每个国家/地区创建一个正则表达式以在每一行中进行搜索,但我想知道我是否可以在一个正则表达式中做到这一点,即在给定的文本行中提到哪个国家/地区。

最佳答案

将所有国家名称连接成一个正则表达式:

String regex = "(";
boolean first = true;

for (String name: countries) {
regex += (first ? "" : "|") + Pattern.quote(name);
first = false;
}

regex += ")";

(你可以用StringBuffer写出更高效的代码)

您将得到一个具有以下形式的正则表达式:(Country1|Country2|Country3),如果文本与任何国家/地区名称匹配,它将匹配。

此解决方案假定您希望将国家/地区名称与您从 getDisplayCountry 获得的名称完全匹配(精确到空格和点)。您可以通过在正则表达式前添加 (?i) 使其匹配不区分大小写。

关于java - 在文本中查找国家/地区的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11647121/

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