python - 在 Python 中如何仅从美元相关字段中去除美元符号和逗号

标签 python regex

我正在阅读一个包含很多列的大型文本文件,这些列与美元相关,但我正在尝试弄清楚如何仅去除美元字段中的 $ 和 , 字符。

所以说我有:

a|b|c

$1,000|hi,you|$45.43

$300.03|$MS2|$55,000

其中 a 和 c 是美元字段而 b 不是。 输出需要是:

a|b|c

1000|hi,you|45.43

300.03|$MS2|55000

我在想正则表达式是可行的方法,但我不知道如何表达替换:

f=open('sample1_fixed.txt','wb')

for line in open('sample1.txt', 'rb'):
    new_line = re.sub(r'(\$\d+([,\.]\d+)?k?)',????, line)
    f.write(new_line)

f.close()

有人有想法吗?

提前致谢。

最佳答案

除非您真的想使用正则表达式,否则我建议您做一些简单、直接且通常易于阅读的事情:

def convert_money(inval):
    if inval[0] == '$':
        test_val = inval[1:].replace(",", "")
        try:
            _ = float(test_val)
        except:
            pass
        else:
            inval = test_val

    return inval


def convert_string(s):
    return "|".join(map(convert_money, s.split("|")))


a = '$1,000|hi,you|$45.43'
b = '$300.03|$MS2|$55,000'

print convert_string(a)
print convert_string(b)

输出

1000|hi,you|45.43
300.03|$MS2|55000

关于python - 在 Python 中如何仅从美元相关字段中去除美元符号和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26644810/

相关文章:

python - 任何人都可以在 python 中定义 int 对象的这种神奇行为的内部结构吗?

javascript - 如何从字符串中查找EJS标签变量名?

php - Slim 3 将特定的正则表达式配置到路由中

Java - 如何在加号上拆分字符串?

python - 获取 pandas 中聚合的聚合

python - 将 pandas 数据框转换为多索引列

Python,多处理 : what to do if process. join() 永远等待?

regex - BASH_REMATCH 在正则表达式匹配后显示空字符串

regex - 在 awk 中打印 "<"和 ">"之间的文本

python - 如何将参数传递给 Python 用户定义函数内的正则表达式?