我一直在寻找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