4

我希望将两个或多个非字母数字字符的任意组合折叠成一个“。”

在这个之前我已经有一个过滤器,所以我需要担心的只有 3 个这样的字符是“_”、“-”和“。”

这就是我想出的

OutNameNoExt:= RegExReplace(OutNameNoExt,"[\._-]+" , ".")

可悲的是,它失败了,因为我只阅读了我的正则表达式书的前 3 章。

我想清理这样的字符串

98788._Interview__with_a_booger..876789_-_.avi

这样它就会读到

98788.Interview.with.a.booger.876789.avi

我也相信我必须使用一个全新的运算符,以便替换发生在所有事件中,而不仅仅是第一个,对吗?

准备好让知识流淌!

4

1 回答 1

4
OutNameNoExt:= RegExReplace(OutNameNoExt,"[^A-Za-z0-9]{2,}" , ".")

[^A-Za-z0-9]匹配一个非字母数字字符(^代表括号表达式上下文中的否定);{2,}匹配前一个表达式中的 2 个或更多字符。它与 基本相同[^A-Za-z0-9][^A-Za-z0-9]+

于 2012-08-25T03:46:44.640 回答