如何从字符串中分离符号?

时间:2015-07-03 19:46:44

标签: ruby

如果我有一个包含货币符号的字符串,我该如何将该符号与字符串分开?假设符号可以在字符串中的任何位置(即前,后,后空格)

"$5"      => "$", "5"
"50,000₩" => "₩", "50,000"
"€307"    => "€", "307"

这可以使用正则表达式吗?任何指针或建议将不胜感激!

1 个答案:

答案 0 :(得分:2)

可能有更好的方法来做到这一点,但

str.scan(/\w/).join('')

会为您提供字母数字字符和

str.scan(/\W/).join('')

会为您提供非字母数字字符。

\w[a-zA-Z0-9_]相同,\W[^a-zA-Z0-9_]

由于您的示例中有"50,000₩" => "₩", "50,000",您可能需要:

str.scan(/[a-zA-Z0-9_,]/).join('')

另外,如果你知道你只有数字,那么str.gsub(/[^0-9,]/, '')可能会很好。