输入:file.exe
结果:exe
输入:xyz.pdf
结果:pdf
测试用例:我想选择文件扩展名我尝试了正则表达式.[^.]+$
。
然而,对于上面的regex,(.(点也会被选中,例如[.]pdf,[.]exe。我如何否定这个点?
您可以使用positive lookbehind assertion
,这意味着正则表达式会检查.
是否存在,但不会将其作为匹配的一部分捕获。
试试这个:
import re
m = re.search(r'(?<=.)[^.]+$', 'file.pdf')
print(m.group(0))
输出:
pdf
只需删除第一个.
部分,如下所示:
[^.]+$
输入:xyz.pdf
结果:pdf
您可以只使用.replacement((
如下所示:
result =result.replace('.','')
讨厌但会工作
使用.([^.]+)$
,然后使用您正在使用的任何食堂系统的组选择机制来选择第一组。通常,第0组是整个图案,包括本例中的点,而第一组(又名1st(是括号中的第一个图案。
您应该在要选择的项目周围使用((来创建组,然后您只能选择组。在python中,它看起来像这样:
value = re.search('.([^.]+)$', 'file.pdf').group(1)
使用支持regex查找/替换的各种工具在多个文件中进行替换实际上非常酷。例如,要交换文件名中的前两个字符,一个有效的正则表达式将如下所示:
^(.)(.)(.*)$
对于替换正则表达式,您将拥有:
213
在一些查找替换对话框中,组被定义为\1,在另一些对话框中被定义为$1。