regex表达式获取文件扩展名之前的最后6个字符

时间:2012-10-25 21:40:24

标签: c# regex

我需要一个C#正则表达式来提取字符串的最后6个字母,并在它们的中间添加正斜杠。例如:

xx_xxxx_xxxABCXYZ.Something.csv

我需要ABC/XYZ

3个字母的组件可以是任何东西,前面的x数量会有所不同。但是,我需要的6个字母总是在第一个句号之前。

我没有其他代码选项,因为我需要将模式和替换输入到GUI中。

非常感谢。

2 个答案:

答案 0 :(得分:4)

使用此:

^.*?(\w{3})(\w{3})\..*$

替换为:

$1/$2

模式匹配整个字符串,因此最终会删除所有内容,但它会在捕获组中捕获两个3个字符的字符串。然后使用$1$2访问这些内容并将其放回原位。该模式后面跟\.,因此六个字符后面必须有一个点。 ?之后的.*确保您找到第一个可能发生的事件(而不是ething)。

请注意,这允许数字,字母和下划线组成六个字符。如果您只想要字母,请仅使用[a-zA-Z][A-Z]作为大写字母。

答案 1 :(得分:3)

我会使用Path.GetFileNameWithoutExtension然后使用string.Insert添加斜杠