python正则表达式问题

Joe*_*Joe 0 python regex

re.search()用于在字符串中查找和返回文件扩展名的正确正则表达式语句是什么.

如: (.+).(avi|rar|zip|txt)

我需要它来搜索字符串,如果它包含任何avi,rar等)只返回该扩展名.

谢谢!

编辑:应该添加,需要不区分大小写

Ant*_*Ant 8

标准库更好;)

>>> os.path.splitext('hello.py')
('hello', '.py')
Run Code Online (Sandbox Code Playgroud)


Jos*_*shD 6

你需要:

(.)\.(avi|rar|zip|txt)$
Run Code Online (Sandbox Code Playgroud)

注意反斜杠以逃避点.这将使它找到一个文字点而不是任何字符.

要使其不区分大小写,请在搜索调用中使用RE.I标志.

re.search(r'(.)\.(avi|rar|zip|txt)$', string, re.I)
Run Code Online (Sandbox Code Playgroud)

  • 那么是否还有一个标志使Python解释器不区分大小写?否则我们必须`导入re作为RE`才能找到`RE.I` ... (2认同)
  • @JoshD:我正在制作一些(失败)的笑话,你用一个设置不区分大小写的标志搞乱案件.(`RE.I`而不是`re.I`) (2认同)