Python regex从字符串列表中删除特定模式

2024-10-02 00:41:11 发布

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

我有一个带有文件名的字符串列表。文件名遵循特定的命名格式:

string1_YYYYMMDD_HHMMSS_string2

这里YYYYMMDD和HHMMSS是实际的日期和时间值。在

我想删除每个条目“string1”之后出现的所有字符。我一直在用regex来尝试,但没有白费。有人能帮我吗?在


Tags: 字符串列表文件名格式时间条目字符命名
2条回答

使用正则表达式:

import re
s = 'string1_YYYYMMDD_HHMMSS_string2'
newstr = re.sub('_.*', '', s)
print(newstr)

注意事项:

  • _.*_及其所有以下字符匹配。在
  • re.sub(p, r, s)s中搜索p,并将所有匹配项替换为r。在

更新1

string1 may contain additional underscores. I'd like to retain all of string1 and only get rid of the trailing pattern.

在这种情况下,可以使用以下正则表达式:

^{pr2}$

演示:https://regex101.com/r/jS2gL5/1

您不需要正则表达式,只需在第一个下划线处拆分:

s = 'string1_YYYYMMDD_HHMMSS_string2'
return s.split('_')[0]

[编辑]:

如果只能依赖最后一部分('''u YYYYMMDD\uhhmmss_string2'),请尝试如下所示建立索引:

^{pr2}$

相关问题 更多 >

    热门问题