我提前道歉,因为我不知道如何正确地问这个问题。每周,我都会收到最新的股票收益报告。它们看起来是这样的
Alexandria Real Estate Equities, Inc. (ARE), Beyond Meat, Inc. (BYND), Brown & Brown, Inc. (BRO), Canon Inc. (CAJ),
Chegg, Inc. (CHGG), Cincinnati Financial Co. (CINF), Ecopetrol SA (EC), Hasbro, Inc. (HAS),
HCA Healthcare, Inc. (HCA), HSBC Holdings plc (HSBC), NXP Semiconductors (NXPI), Otis Worldwide (OTIS),
Packaging Co. of America (PKG), Petróleo Brasileiro S.A. - Petrobras (PBR), Principal Financial Group Inc (PFG),
Principal Financial Group, Inc. (PFG), SAP SE (SAP), Twilio Inc (TWLO)由于这封邮件是通过电子邮件发送的,所以我想找到一种方法,将它存储在一个看起来很吸引人的.txt中。如果可能的话,我想让它看起来像
[1] Alexandria real estate equities, inc. (ARE)
[2] Beyond meat, inc. (BYND)
[3] Brown & brown, inc. (BRO)
[4] Canon inc. (CAJ)
[5] Chegg, inc. (CHGG)
[6] Cincinnati financial co. (CINF)
[7] Ecopetrol sa (EC)
[8] Hasbro, inc. (HAS)诸若此类。尽管我不断地思考并列出了不同的选择,但我仍然被困住了,不知道如何接近它。任何帮助都将不胜感激。
发布于 2020-10-26 13:16:29
我会这样说..
import re
stocks = re.split(r'(?<=\)),\s', stocks_string.replace('\n','')
for index, stock in enumerate(stocks):
print(f'[{index+1}] {stock}'我使用正则表达式split来保留股票名称末尾的结束括号。(?<=)被称为“向后看”,仅当右括号在其前面时,整体正则表达式才会与coma匹配。
发布于 2020-10-26 13:22:48
我们可以看到,每个股票都是用,分隔的。但由于",Inc.“也使用相同的,字符,因此我们需要用),分隔股票名称。
让我们使用Python内置的split()函数拆分文本。我们从文本中获得一个字符串列表。如下所示:
text = "Alexandria Real Estate Equities, Inc. (ARE), Beyond Meat, Inc. (BYND), Brown & Brown, Inc. (BRO), Canon Inc. (CAJ), Chegg, Inc. (CHGG), Cincinnati Financial Co. (CINF), Ecopetrol SA (EC), Hasbro, Inc. (HAS), HCA Healthcare, Inc. (HCA), HSBC Holdings plc (HSBC), NXP Semiconductors (NXPI), Otis Worldwide (OTIS), Packaging Co. of America (PKG), Petróleo Brasileiro S.A. - Petrobras (PBR), Principal Financial Group Inc (PFG), Principal Financial Group, Inc. (PFG), SAP SE (SAP), Twilio Inc (TWLO)"
split_text = text.split("), ")输出:
['Alexandria Real Estate Equities, Inc. (ARE', 'Beyond Meat, Inc. (BYND', 'Brown & Brown, Inc. (BRO', 'Canon Inc. (CAJ', 'Chegg, Inc. (CHGG', 'Cincinnati Financial Co. (CINF', 'Ecopetrol SA (EC', 'Hasbro, Inc. (HAS', 'HCA Healthcare, Inc. (HCA', 'HSBC Holdings plc (HSBC', 'NXP Semiconductors (NXPI', 'Otis Worldwide (OTIS', 'Packaging Co. of America (PKG', 'Petróleo Brasileiro S.A. - Petrobras (PBR', 'Principal Financial Group Inc (PFG', 'Principal Financial Group, Inc. (PFG', 'SAP SE (SAP', 'Twilio Inc (TWLO)']让我们将丢失的)字符追加到末尾。
要获取每只股票的指数,可以在循环中使用enumerate()函数。
最后的代码:
split_text = text.split("), ")
for idx, stock_name in enumerate(split_text):
print(f"[{idx+1}] {stock_name})")输出:
[1] Alexandria Real Estate Equities, Inc. (ARE)
[2] Beyond Meat, Inc. (BYND)
[3] Brown & Brown, Inc. (BRO)
[4] Canon Inc. (CAJ)
[5] Chegg, Inc. (CHGG)
[6] Cincinnati Financial Co. (CINF)
[7] Ecopetrol SA (EC)
[8] Hasbro, Inc. (HAS)
[9] HCA Healthcare, Inc. (HCA)
[10] HSBC Holdings plc (HSBC)
[11] NXP Semiconductors (NXPI)
[12] Otis Worldwide (OTIS)
[13] Packaging Co. of America (PKG)
[14] Petróleo Brasileiro S.A. - Petrobras (PBR)
[15] Principal Financial Group Inc (PFG)
[16] Principal Financial Group, Inc. (PFG)
[17] SAP SE (SAP)
[18] Twilio Inc (TWLO)发布于 2020-10-26 13:10:44
如果文本文件总是这种格式:"Full name here (SHORT)“,那么我们可以使用简单的python拆分,因为我们知道每个术语之间总是有一个"),”。此拆分将返回一个包含您正在查找的所有值的数组。
https://stackoverflow.com/questions/64531784
复制相似问题