我必须拆分一个包含正常值和货币值的字符串
i.e. aaa,bbb,$33,222,ccc,$22,000
预期输出:
-aaa
-bbb
-$33,222
-ccc
-$22,000
答案 0 :(得分:1)
答案 1 :(得分:0)
我建议抓住捕获而不是拆分。
(\$\d+(?:,\d+)*(?:\.\d+)*)|([^,\n]+)
试试这个。请参阅演示。稍后您可以-
添加capture
或group
个结果。
答案 2 :(得分:0)
给出一些非正则表达式的答案。您可以执行以下操作:
String[] MySplit(String str)
{
bool currency = false;
char[] chars = str.ToCharArray();
for(int i = 0; i < str.Length(); ++i)
{
if(chars[i] == '$')
currency=true;
else
if(currency && chars[i] == ',')
{
chars[i] = '.';
currency = false;
}
}
return new String(chars).Split(",");
}
这会用完全停止或任何你想要的东西替换货币逗号,这样你就可以在逗号上轻松地分割字符串。拥有令牌后,您可以随时将其更改回逗号。请注意,这仅适用于货币值始终为小数的假设。