如何在python中删除子字符串

Posted

技术标签:

【中文标题】如何在python中删除子字符串【英文标题】:How to remove a substring in 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 【参考方案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 的唯一原因。 ***.com/questions/11475885/python-replace-regex***.com/questions/5658369/…【参考方案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'

【讨论】:

以上是关于如何在python中删除子字符串的主要内容,如果未能解决你的问题,请参考以下文章

数组篇在python中如何查找最长字符串子串

[在python中使用正则表达式搜索字符串子字符串

PB中取字符串子串的函数是啥

PB中取字符串子串的函数是啥

如何在Java中将字符串子串到第二个点(。)?

华为OD机试真题Java实现判断字符串子序列真题+解题思路+代码(2022&2023)