【发布时间】:2010-10-13 00:06:53
【问题描述】:
我正在尝试处理一堆文件,然后我需要更改以删除文件名中的无关信息;值得注意的是,我正在尝试删除括号内的文本。例如:
filename = "Example_file_(extra_descriptor).ext"
我想对一大堆文件进行正则表达式,其中括号表达式可能位于中间或末尾,并且长度可变。
正则表达式会是什么样子?首选 Perl 或 Python 语法。
【问题讨论】:
-
您确定“extra_descriptor”不能包含“)”吗?如果可以的话,问题会变得更加困难......
-
@dmckee:如果括号可以嵌套,那就更难了,但如果你只想摆脱第一个'('和最后一个')'之间的所有内容这并不难:只需使用贪婪的 '.*' 而不是 '.*?'。
-
@j_random_hacker 你是对的,因为嵌套括号不能被 FSM 识别(你必须跟踪嵌套级别,这是无限的),所以这要困难得多。一个正则表达式。为了使这成为可能,您必须将自己限制在有限的嵌套级别。