有一个用逗号分隔的城市名称列表,以及方括号中名称的同义词列表。示例 -莫斯科 [莫斯科时间,别洛卡门纳亚],圣彼得堡 [圣彼得堡,圣彼得堡],罗斯托夫,加里宁格勒 需要分为名称列表
- 莫斯科 [莫斯科时间,别洛卡门纳亚]
- 圣彼得堡 [圣彼得堡、圣彼得堡]
- 罗斯托夫
- 加里宁格勒
分离所有标题很容易
String input = "Москва [Мск, Белокаменная], Санкт-Петербург [Спб, Питер], Ростов";
Pattern pattern = Pattern.compile("[\[,\]]");
String[] words = pattern.split(input);
以及如何在方括号中提取名称和同义词?
尝试
,(?<=\],) ?regex101 的正则表达式测试的这个变体在 onecompiler 上的结果 3 元素测试
试试
matcher。假设城市名称不能只包含左方括号和逗号,但可以有空格。(?!\s)在开始时切断左侧不必要的空间。正则表达式链接 - https://www.regexplanet.com/share/index.html?share=yyyyd0tvj6r:如果通过简单的线性解析来解决问题,为什么还需要正则表达式?