我有大量要重命名的文件,其名称包含混乱后缀。我正在使用一些高级重命名软件,并想知道如何编写一个删除后缀的RegEx。一些例子是:
Content - Still content-A pOst fix
Content-- BpOst - fix with - inside (dashes in postfix)
Content-Still --Content -CpOstfix (dashes in content)
Content fake pOst - real pOst --fix (two keywords, one in content and postfix each)
Content fake- pOst - real pOst --fix (two keywords both in postfix)
Content fake pOst fix (space is not a splitter of pOstfix, so nothing removed)
我希望输出删除所有帖子修复,包括前导短划线和/或空格。所需的输出是:
Content - Still content
Content
Content-Still --Content
Content fake pOst
Content fake
Content fake pOst fix (space is not a splitter of pOstfix, so nothing removed)
我甚至不知道RegEx是否可以这样做。
不确定的破折号数量(有或没有空格)是修复后的拆分器,但内容或后期修复都可能包含破折号和/或修复,但是,所有后期修复都包含内部的某些字母(例如本例中的字母O
或pOst
。
有一些观点:
certain letter(s)
。所以使用像[a-zA-Z]
这样的东西并不理想。PS:我也想知道如何包括A而不是B的角色类?
例如,我想要所有字母数字,但排除字母a和数字5,类似(显然不起作用):/[\w^a5]+/
。除了编写像/[b-zA-Z0-46-9]/
之类的详尽列表外,还有更好的方法吗?像工会和十字路口一样?
我真诚地感谢任何帮助。非常感谢。
答案 0 :(得分:1)
您应该可以替换
\s*-+\s*[^O-]*O.*$
用空字符串。它将匹配一个或多个破折号(由可选空格包围),然后在输入结束前至少有一个O
。
如果您想匹配整个词组,则需要使用negative lookahead,如下所示:
\s*-+\s*((?!pOst)[^-])*pOst.*$