在java中使用regex从列分隔文件中字段内的货币字段中删除美元符号和逗号
尝试使用string.replaceAll命令从位于逗号分隔文件中记录上的货币字段中删除美元符号和千位分隔符(在我的示例中为逗号)时,我遇到了一些挑战 删除美元符号和逗号(所有逗号)没有问题,但逗号字段分隔符需要保留,这是我的挑战。我已经花了一点时间研究这个问题,我正在转动我的轮子 下面是正在读取的记录类型的模式,以及我以后希望看到的内容 前-在java中使用regex从列分隔文件中字段内的货币字段中删除美元符号和逗号,java,regex,Java,Regex,尝试使用string.replaceAll命令从位于逗号分隔文件中记录上的货币字段中删除美元符号和千位分隔符(在我的示例中为逗号)时,我遇到了一些挑战 删除美元符号和逗号(所有逗号)没有问题,但逗号字段分隔符需要保留,这是我的挑战。我已经花了一点时间研究这个问题,我正在转动我的轮子 下面是正在读取的记录类型的模式,以及我以后希望看到的内容 前-fieldA,fieldB,fieldC,$1000.00,fieldD,FieldE 后-fieldA、fieldB、fieldC、1000.00、fi
fieldA,fieldB,fieldC,$1000.00,fieldD,FieldE
后-fieldA、fieldB、fieldC、1000.00、fieldD、fieldE
或者我不使用正则表达式模式会更好吗
非常感谢您的帮助。试试这个
s = s.replaceAll("\\$|(?<=\\d),(?=\\d)", "");
s=s.replaceAll(“\\$”)(?您可以使用:
String repl = str.replaceAll("(?<=\\d),(?=\\d)|\\$", "");
//=> fieldA, fieldB, fieldC, 1000.00, fieldD, FieldE
String repl=str.replaceAll(“(?注意要删除的逗号和不删除的逗号之间的区别。字段seperator后面总是跟一个空格,因此使用以下正则表达式:
String.replaceAll(",[^ ]", "");
regex,[^]
表示“逗号,后跟非空格的符号”。要替换美元符号,您可能应该将其转义,因为它对regex有特殊意义:
String.replaceAll("\\$", "");