【发布时间】:2015-06-05 05:15:42
【问题描述】:
我必须拆分一个包含正常值和货币值的字符串
i.e. aaa,bbb,$33,222,ccc,$22,000
预期输出:
-aaa
-bbb
-$33,222
-ccc
-$22,000
【问题讨论】:
我必须拆分一个包含正常值和货币值的字符串
i.e. aaa,bbb,$33,222,ccc,$22,000
预期输出:
-aaa
-bbb
-$33,222
-ccc
-$22,000
【问题讨论】:
【讨论】:
aaa,123 的情况下中断你想要吗?
只是为某些品种提供非正则表达式答案。您可以执行以下操作:
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(",");
}
这会将货币逗号替换为句号或您想要的任何内容,以便您可以轻松地将字符串拆分为逗号。拥有令牌后,您始终可以将其改回逗号。请注意,这仅在货币值始终包含小数的假设下有效。
【讨论】:
我建议抓取而不是拆分。
(\$\d+(?:,\d+)*(?:\.\d+)*)|([^,\n]+)
试试这个。查看演示。您可以稍后将- 附加到每个capture 或group 结果。
【讨论】: