Regex适用于任何国家的货币,如印度卢比-美元



我想为任何国家的货币创建正则表达式,为此,我正在java 中准备正则表达式

public Static CURRENCY_FORMAT= ^(([-+][1-9]\d{0,2}(,\d{3})*)|(([1-9]\d*)?\d))(\.\d\d)?$
public static final String GBP = "GBP";
public static final String USD = "USD";
public static final List<String> CURRENCY_LIST=new ArrayList<String>(Arrays.asList(GBP,USD));

现在我想使用此列表在货币前面添加1个空格例如"123.23美元"或"89.78卢比"我正在创建货币列表,因为如果将来我必须添加新的货币,我可以很容易地做到这一点。我试过了,但不起作用。

public Static CURRENCY_FORMAT= "^\["+CURRENCY_LIST+" ]"+^(([-+][1-9]\d{0,2}(,\d{3})*)|(([1-9]\d*)?

为什么不使用java.util.Currency?更简单的是,您可以为每个Locale获得一个实例,您应该从操作系统属性中读取该实例,或者请求用户输入。它还提供符号名称小数位数,这些应该可以满足您的大部分需求。

最新更新