多个换行符上的Python regex

2024-09-30 00:28:57 发布

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

我有一个包含多个文件路径的字符串,其中一些路径中包含任意换行符,我希望使用python解析该字符串,以便只保留文件名和扩展名。在

例如:

a/b/c/d/file1.c  
a/b/c/d/e/f/g/h/1/2/3/4/5/foo.c  
dir1/dir2/newlinedir  
/nextlinedir/bar.c

应分析以给出输出:

file1.c
foo.c
bar.c

我正在使用以下正则表达式(文件名和扩展名的组必须分开,以便以后使用):

^{pr2}$

这将适用于具有单行路径的字符串,但不适用于包含新行的路径。 我该怎么办?在


Tags: 文件字符串路径foo文件名barfile1单行
3条回答

你可以试试这个

>>> s = '''a/b/c/d/file1.c  
a/b/c/d/e/f/g/h/1/2/3/4/5/foo.c  
dir1/dir2/newlinedir  
/nextlinedir/bar.c'''
>>> print(re.sub(r'(?s).*?([^/]+\.c)', r'\1\n', s))
file1.c
foo.c
bar.c

或者

^{pr2}$
^([\s\S]*?\/)(\w+\.c)

试试看这个。看到了吗演示。这个将工作multiline也是。使用mmultiline标志。在

https://regex101.com/r/rX1tE6/7

试试这个正则表达式:(?:.*\/)(.+)\.(.+)

使用\1访问文件名,使用\2访问扩展名

DEMO

相关问题 更多 >

    热门问题