【发布时间】:2022-01-13 03:16:04
【问题描述】:
我有这样的文字:
05/06/21 05/06/21 Margin Div/Int - Income ACTIVISION BLIZZARD INC
COM
Payable: 05/06/2021
QUALIFIED DIVIDENDS 23.50
ATVI - 0.00 23.50 (9,425.77)
05/13/21 05/13/21 Margin Div/Int - Income APPLE INC
COM
Payable: 05/13/2021
QUALIFIED DIVIDENDS 6.16
AAPL - 0.00 6.16 (9,419.61)
05/28/21 05/28/21 Margin Div/Int - Income STARBUCKS CORP
COM
Payable: 05/28/2021
QUALIFIED DIVIDENDS 18.00
SBUX - 0.00 18.00 (9,401.61)
05/28/21 05/28/21 Margin Div/Int - Expense MARGIN INTEREST CHARGE
Payable: 05/28/2021
- - 0.00 (73.03) (9,474.64)
我想提取单个记录,例如:
05/06/21 05/06/21 Margin Div/Int - Income ACTIVISION BLIZZARD INC
COM
Payable: 05/06/2021
QUALIFIED DIVIDENDS 23.50
ATVI - 0.00 23.50 (9,425.77)
和
05/13/21 05/13/21 Margin Div/Int - Income APPLE INC
COM
Payable: 05/13/2021
QUALIFIED DIVIDENDS 6.16
AAPL - 0.00 6.16 (9,419.61)
和
05/28/21 05/28/21 Margin Div/Int - Expense MARGIN INTEREST CHARGE
Payable: 05/28/2021
- - 0.00 (73.03) (9,474.64)
这里每条记录的模式应该以 date(\d+/\d+/\d) 开头并以 (\n\n\d+/\d+/\d) 结尾
我试过(re.findall(r'\d+/\d+/\d(.*?)\n\n\d+/\d+/\d+',a))。但它并没有按预期工作
【问题讨论】:
-
您提到了“以
(\n\n\d+/\d+/\d)结尾”,但您的预期输出以\n\n结尾。哪个是正确的? -
请在代码块中显示源文本,并将换行符作为实际的换行符,而不是
\n,因为这更容易在视觉上解析(我们不是计算机!)。同样,请提供一个您希望作为单个项目提取的输入片段的示例。 -
更新了@Inigo...!
-
@SreeKumar,有可能在中间有日期,这就是为什么我提到它应该以 '\n\n\d+/\d+/\d' 结尾
-
@codingIsInteresting 谢谢。我更进一步。这对人们来说更容易阅读/理解/查看/解析/使用:)
标签: python python-3.x regex text-extraction