我有一个包含多个文件路径的字符串,其中一些包含该路径内的任意换行符,并且我想使用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
应该被解析为输出:
文件1.c
foo.c
bar.c
我正在使用以下正则表达式(文件名和扩展名的组必须分开,以备后用):
path_regex = re.compile(r'.*\/([^\/\.]*)(\.c){0,1}$', re.MULTILINE)
path_regex.sub(r'\g<1>\g<2>', input_string)
这将适用于具有单行路径的字符串,但不适用于包含换行符的路径。
我该怎么办?
最佳答案
^([\s\S]*?\/)(\w+\.c)
试试看,看演示,这也可以在
multiline
下工作,使用m
或multiline
标志。https://regex101.com/r/rX1tE6/7