2

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

xx_xxxx_xxxABCXYZ.Something.csv

我需要ABC/XYZ

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

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

非常感激。

4

2 回答 2

4

用这个:

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

用。。。来代替:

$1/$2

该模式匹配整个字符串,因此所有内容最终都会被删除,但它会在捕获组中捕获两个字符串,每个字符串包含 3 个字符。$1然后使用和访问并放回原位$2。模式后面也跟着\.,所以这六个字符后面必须有一个点。?之后.*确保您找到第一个可能出现的位置(而不是)ething

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

于 2012-10-25T21:53:30.453 回答
3

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

于 2012-10-25T21:44:12.023 回答