Python 使用正则表达式

Python with regex

请帮帮我。

我有一个路径文件列表如下:

[PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/Papagaio_verdadeiro.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_amarelo.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/zoom_RACAO_ALIMENTO_NUTROPICA_PAPAGAIO_AVES_PASSAROS1.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/papagaio_ok.jpg'),
 PosixPath('/home/angelo/Documentos/IA/Fast.ai-v3/nbs/dl1/papagaio/alx_papagaio_20070327_01_original.jpeg')]

此列表是使用 get_image_files 创建的。

这是鹦鹉图片列表。在巴西 papagaio = parrot.

为了在机器学习中使用文件名进行分类,我尝试使用以下正则表达式:

pat = r'.[^\/.]+.jpg$'

但是,在 ImageDataBunch 中使用它之后...

data_papagaio = ImageDataBunch.from_name_re(papagaio_path, papagaio_files, pat, ds_tfms=get_transforms(), size=224, bs=bs
                                  ).normalize(imagenet_stats)

我在 return 中收到以下错误消息:

IndexError: no such group

而且不知道怎么解决。有人可以帮助我吗?

澄清一下,我正在尝试使用我硬盘上的一些文件重现 fast.ai 课程中的第 1 课。

方法正在寻找捕获组值,您需要在文件名模式两边设置一对非转义括号。

此外,您似乎同时拥有 jpgjpeg,因此您需要 jpe?g,而不仅仅是 jpg

使用

pat = r'([^/.]+)\.jpe?g$'

regex demo