如何从可能变化的字符串中提取特定的字符

2024-06-25 22:39:24 发布

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

我正在尝试提取文件名的特定部分,该部分可以有不同数量的'\。我以前使用partition/rpartition去除下划线条前后的所有内容,但我没有考虑不同下划线条编号的可能性

代码的目的是提取下划线条之间的特定字符

filename = os.path.basename(files).partition('_')[2].rpartition('_')[0].rpartition('_')[0].rpartition('_')[0]

以上是我目前的代码。文件的典型名称如下所示:

P0_G12_190325184517_t20190325_5

或者它也可以有

P0_G12_190325184517_5

据我所知,我当前代码的rpartition需要与第一个文件中的下划线条数匹配,但显然相同的代码不适用于第二个文件

我想提取

G12 

这个部分也可以像G1一样只有两个字符,所以上面的文件名类型可以有两到三个字符


Tags: 文件代码目的内容数量os文件名可能性
2条回答

您可以使用:

os.path.basename(files).split('_')[1]

您可以使用split创建一个包含独立部分的列表,如下所示:

files.split('_')

或者可以使用regex:

https://regex101.com/r/jiUNLV/1

这样做:

import re
pattern = r'.*_(\w{2,3})_\d+.*'

match = re.match(pattern, files)

if match:
    print(match.group(1))

相关问题 更多 >