【问题标题】:How to remove a substring in python如何在python中删除子字符串
【发布时间】:2020-08-01 23:25:35
【问题描述】:

我有一个字符串,其中的日期和时间会根据报告发生变化。

String = "Engine NOrc04/14/20 11:24XX5555-May-2021" 

我想删除“04/14/20 11:24”,因为每次生成报告时它都会发生变化。

output = "Engine NOrcXX5555-May-2021"

【问题讨论】:

  • 你应该提供更多你如何构造字符串和字符串的内部格式?
  • 您是否尝试过解决此问题
  • 这是您问题的答案click here

标签: python string substring


【解决方案1】:

切片

如果字符串的格式没有改变,你可以按如下方式对字符串进行切片:

string = "Engine NOrc04/14/20 11:24XX5555-May-2021"
new_string = string[:11] + string[25:]
print(new_string)

string = "Engine NOrc04/14/20 11:24XX5555-May-2021 report contains below information..."
new_string = string[:11] + string[25:]
print(new_string)

输出

Engine NOrcXX5555-May-2021
Engine NOrcXX5555-May-2021 report contains below information...

使用正则表达式

如果时间出现在字符串的不同部分,但时间的格式没有改变,可以用re.sub()替换时间字符串:

import re

string = 'Engine NOrc04/14/20 11:24XX5555-May-2021 report contains below information...'
new_string = re.sub('\d\d/\d\d/\d\d \d\d:\d\d', '', string)
print(new_string)

string = 'SOME OTHER RANDOM STRING 04/14/20 11:24 THIS IS A DIFFERENT STRING'
new_string = re.sub('\d\d/\d\d/\d\d \d\d:\d\d', '', string)
print(new_string)

输出:

Engine NOrcXX5555-May-2021 report contains below information...
SOME OTHER RANDOM STRING  THIS IS A DIFFERENT STRING

【讨论】:

  • 实际上字符串长度不是固定的,它正在发生变化,但我要删除的部分将始终从 NOrc 开始并以时间结束(时间随每个报告而变化) - 例如 - String = "报告生成者:vikas 报告名称:oldreport 报告类型并生成于:Engine NOrc04/14/20 11:24XX5555-May-2021 报告包含以下信息...”在上述情况下,我不知道“04/14”的索引/20 11:24" 请帮忙谢谢
  • @VinodKumar 更新了我的答案,而不是从最后开始计算,只需跳过 14 个字符,因为那是时间的子字符串的长度
  • @GrandPhuba 您刚刚将我的正则表达式解决方案复制到您的答案中!计数字符是解决这个问题的一种非常脆弱的方法。
  • @ScoJo 我承认代码是相同的,并且您首先提出了建议,但是您真的认为有人会盲目地复制代码这么简单,更不用说将其作为答案的一部分提供了测试它。至于脆弱的评论,那是无关紧要的,除非 OP 提供更多不合适的上下文,否则答案是有效的,并且是答案尝试解释何时使用 which 的唯一原因。
【解决方案2】:

使用正则表达式查找日期并替换为空字符串。

import re

string = "Engine NOrc04/14/20 11:24XX5555-May-2021"
result = re.sub(r"\d\d/\d\d/\d\d \d\d:\d\d", "", string)
print(result)

输出

'Engine NOrcXX5555-May-2021'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2014-05-20
    相关资源
    最近更新 更多