gpt4 book ai didi

Python 正则表达式。删除 ':' 之后的所有字符(包括行尾和特定字符串除外)

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:53 31 4
gpt4 key购买 nike

我正在从日志文件中解析信息和布局数据。假设我有一些看起来像这样的行:

Book: 190 Checked Out By: ABCD-1234-E5F6, Status: LATE Return: 02.20.2018

我正在尝试删除特定于该行的信息,如数字、序列号、日期等。但是,说“状态:迟到”应该保留。我想要这样的输出:

Book Checked Out By, Status: LATE Return

(这个例子是编的,结合实际的数据和任务更有意义一些。)

目前我有:re.sub(':\s.*?(?=[^A-Z\d\-.])','', str) 删除后面的所有字符': ' 不是大写字母、数字和 '.'或“-”(它会停在其他任何地方,如空格、a-z 等)。但是,我的输出保留了行中的最后一位并删除了状态。

Book Checked Out By, Status: Return: 10.20.2018

  1. 如何指定删除“:”后面的所有大写字母,除了单词“LATE”
  2. 缺少什么也会删除行尾的数字?

最佳答案

re.sub 带有否定的前瞻性以保持 LATE 不匹配:

re.sub(r':\s(?!LATE)[A-Z\d.-]+', '', str_)
  • :\s 匹配 : 后跟一个空格

  • (?!LATE) -- 零宽度负先行确保 LATE 不会在后续匹配中出现

  • [A-Z\d.-]+ 匹配一个或多个 [A-Z\d.-]

示例:

In [41]: str_ = 'Book: 190 Checked Out By: ABCD-1234-E5F6, Status: LATE Return: 02.20.2018'

In [42]: re.sub(r':\s(?!LATE)[A-Z\d.-]+', '', str_)
Out[42]: 'Book Checked Out By, Status: LATE Return'

关于Python 正则表达式。删除 ':' 之后的所有字符(包括行尾和特定字符串除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996450/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com