繁体   English   中英

在java中使用regex从列分隔文件中的字段内的货币字段中删除美元符号和逗号

[英]Using regex in java to remove a dollar sign and comma from a currency field within a field in a column delimited file

我试图从使用string.replaceAll命令驻留在逗号分隔文件中的记录上的货币字段中删除美元符号和千位分隔符(在我的情况下为逗号)时遇到一些挑战。

删除美元符号和逗号(所有逗号)都没有问题,但是逗号字段分隔符需要保留,这就是我的挑战。 我花了一点时间研究这个并且正在旋转我的车轮。

下面是读入记录类型的模式以及我希望看到的内容。

之前 - fieldA, fieldB, fieldC, $1,000.00, fieldD, FieldE

After- fieldA, fieldB, fieldC, 1000.00, fieldD, fieldE

或者我最好不使用正则表达式模式?

任何帮助是极大的赞赏。

请注意您要删除的逗号与不删除的逗号之间的区别。 字段分隔符后面跟一个空格,所以使用以下正则表达式:

String.replaceAll(",[^ ]", "");

正则表达式,[^ ]表示“逗号,后跟不是空格的东西”。 要替换美元符号,您应该逃避它,因为它对正则表达式有特殊意义:

String.replaceAll("\\$", "");

您可以使用:

String repl = str.replaceAll("(?<=\\d),(?=\\d)|\\$", "");

//=> fieldA, fieldB, fieldC, 1000.00, fieldD, FieldE

尝试这个

s = s.replaceAll("\\$|(?<=\\d),(?=\\d)", "");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM