我一直在尋找re.match
/re.search
從我的文件中找到某個int。 int會有所不同,這就是爲什麼我使用正則表達式的原因。下面是該文件:將re.match/re.search轉換爲字符串
Money:
*1,000 coins
*2 dollars
而且我的代碼:
import re
amount = 2
price = 500 * amount
with open("money.txt", "r") as money:
moneyc = money.read()
moneyc = moneyc.strip("Money:")
moneyc = re.search("(\*[^0,][0-9]{0,3})?(,[0-9]{3})?(,[0-9]{3})?", moneyc)
moneyleft = re.sub("(\*[^0,][0-9]{0,3})?(,[0-9]{3})?(,[0-9]{3})? coins", "*"+str(int(moneyc.replace("*", "").replace(",", "")) - price)+" coins")
money.write("Money\n"+moneyleft)
返回錯誤:
Traceback (most recent call last):
File "C:/***/money.py", line 8, in <module>
moneyleft = re.sub("(\*[^0,][0-9]{0,3})?(,[0-9]{3})?(,[0-9]{3})? coins", "*"+str(int(moneyc.replace("*", "").replace(",", "")) - price)+" coins")
AttributeError: '_sre.SRE_Match' object has no attribute 'replace'
,它只是因爲正則表達式匹配是不是字符串,但因爲我需要以某種方式將它變成一個字符串,我將如何去解決它?
我想要的文件算賬是什麼:
Money:
*0 coins
*2 dollars
由於這樣的事實,價格是500 * amount
和金額是2,爲什麼我一直在"coins"
我re.sub
是因爲這裏還有美元。
我想你在替換零件中包含了一些js代碼。 – 2014-08-30 12:09:28