使用MessageFormat进行解析:有没有办法强制贪婪匹配,或者要求整个输入匹配?

时间:2016-08-13 18:51:49

标签: java string-formatting string-parsing greedy messageformat

或者:是否有另一个能够实现此目的的formatting字符串和parsing字符串(使用同一个对象!)的实用程序?

假设您的目录中包含.au格式的音频文件,其名称格式为country.code.XX.au。我们可能希望使用带有模式MessageFormat的{​​{1}}来格式化和解析这些文件名的重要部分。

但请考虑一下这个演示:

country.{0}.au

解析结果不一致。在某些情况下,我们会获得public class MessageFormatExercise { public static void main(String[] args) throws Exception { java.text.Format f = new java.text.MessageFormat("country.{0}.au"); // String formatting; prints "country.code.us.au" and "country.code.au.au" respectively System.out.println(f.format(new Object[]{"code.us"})); System.out.println(f.format(new Object[]{"code.au"})); // String parsing; prints "code.us" and "code" respectively (not "code.au"!) System.out.println(((Object[]) f.parseObject("country.code.us.au"))[0]); System.out.println(((Object[]) f.parseObject("country.code.au.au"))[0]); } } code.us,但就澳大利亚而言,我们会得到code.gb

0 个答案:

没有答案