适用于INR USD等任何国家/地区的货币的正则表达式

时间:2016-05-11 10:57:56

标签: java 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个空格的货币前面添加 例如“USD 123.23”或“INR 89.78” 我正在创建货币列表,因为如果将来我必须添加新货币,以便我可以轻松地做到这一点。 我尝试了这个,但它没有用。

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

1 个答案:

答案 0 :(得分:1)

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