我有一个包含多个文件路径的字符串,其中一些包含该路径内的任意换行符,并且我想使用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下工作,使用mmultiline标志。

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

08-20 04:05