正则表达式自定义表单

2024-06-02 13:29:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下声明:

Credits Electronic deposits/bank credits Effective Posted date date Amount Transaction detail 07/01 2,023,825.24 Stagecoach Sweep Credit 07/02 2,023,825.24 Stagecoach Sweep Credit 07/02 19,479.00 WT Fed#02868 E Trade Securities /Org=Etrade Securities LLC Srf# 8785491 070220 Trn#200702058382 Rfb# 07/03 2,042,191.24 Stagecoach Sweep Credit 07/06 2,042,191.24 Stagecoach Sweep Credit 07/07 2,042,191.24 Stagecoach Sweep Credit 07/08 2,042,191.24 Stagecoach Sweep Credit 07/09 2,042,191.24 Stagecoach Sweep Credit 07/10 2,042,191.24 Stagecoach Sweep Credit 07/13 2,042,191.24 Stagecoach Sweep Credit 07/14 2,041,936.79 Stagecoach Sweep Credit 07/15 2,041,936.79 Stagecoach Sweep Credit 07/15 61,683.50 WT Fed#02317 E Trade Securities /Org=Etrade Securities LLC Srf# 8824249 071520 Trn#200715067847 Rfb#

我需要创建一个正则表达式,它将在mm/dd格式之后提取和分离所有内容

例如:

07/02 2023825.24 Stagecoach清扫信用07/02 19479.00 WT Fed#02868 E Trade Securities/Org=Etrade Securities LLC Srf#8785491 070220 Trn#200702058382 Rfb#

然后,该语句后面的下一行将以mm/dd格式紧随其后

07/03 2042191.24公共马车清扫信用07/06 2042191.24公共马车清扫信用

由于我对正则表达式一无所知,我不知道如何处理这个流

多谢各位


Tags: orgdatesecuritiescredittradewt信用llc
2条回答

不幸的是,您自己的示例不符合在mm/dd分隔符后分隔的规则。因此,不清楚实际的分隔符是什么。然而,这里有一个想法

下面的代码将在文本中显示每个mm/dd匹配及其范围。获取结果中各条目之间的跨距,以便根据需要对原始文本进行切片。如果您准确地了解切片应该是怎样的,并创建一个函数,将所有内容都放入一个好的列表中,这将是最好的:

import re

txt = """\
Credits Electronic deposits/bank credits Effective Posted date date Amount Transaction detail 07/01 2,023,825.24 Stagecoach Sweep Credit 07/02 2,023,825.24 Stagecoach Sweep Credit 07/02 19,479.00 WT Fed#02868 E Trade Securities /Org=Etrade Securities LLC Srf# 8785491 070220 Trn#200702058382 Rfb# 07/03 2,042,191.24 Stagecoach Sweep Credit 07/06 2,042,191.24 Stagecoach Sweep Credit 07/07 2,042,191.24 Stagecoach Sweep Credit 07/08 2,042,191.24 Stagecoach Sweep Credit 07/09 2,042,191.24 Stagecoach Sweep Credit 07/10 2,042,191.24 Stagecoach Sweep Credit 07/13 2,042,191.24 Stagecoach Sweep Credit 07/14 2,041,936.79 Stagecoach Sweep Credit 07/15 2,041,936.79 Stagecoach Sweep Credit 07/15 61,683.50 WT Fed#02317 E Trade Securities /Org=Etrade Securities LLC Srf# 8824249 071520 Trn#200715067847 Rfb#"""

pattern = re.compile(r'(\d{2}/\d{2})')

res = re.finditer(pattern, txt)

for r in res:
    print(r)


# Two examples
print(txt[94:137])
print(txt[137:180])

这有点陈旧,但是如果您没有找到解决方案,那么您可以在Alteryx中按照下面的方法执行

首先,确保字段大小足够大(可以使用Select) 具有以下配置的正则表达式:

表达式:(\s\d\d/\d\d\s)

方法:替换

文本:\n$1

然后使用文本到列:分隔符(\n)并拆分到行

如果随后需要将同一日期的数据移动到同一行上,则可以使用多行或拆分日期并使用摘要来连接

相关问题 更多 >