我需要一个C#正则表达式来提取字符串的最后6个字母,并在它们的中间添加正斜杠。例如:
xx_xxxx_xxxABCXYZ.Something.csv
我需要ABC/XYZ
3个字母的组件可以是任何东西,前面的x数量会有所不同。但是,我需要的6个字母总是在第一个句号之前。
我没有其他代码选项,因为我需要将模式和替换输入到GUI中。
非常感谢。
答案 0 :(得分:4)
使用此:
^.*?(\w{3})(\w{3})\..*$
替换为:
$1/$2
模式匹配整个字符串,因此最终会删除所有内容,但它会在捕获组中捕获两个3个字符的字符串。然后使用$1
和$2
访问这些内容并将其放回原位。该模式后面跟\.
,因此六个字符后面必须有一个点。 ?
之后的.*
确保您找到第一个可能发生的事件(而不是ething
)。
请注意,这允许数字,字母和下划线组成六个字符。如果您只想要字母,请仅使用[a-zA-Z]
或[A-Z]
作为大写字母。
答案 1 :(得分:3)
我会使用Path.GetFileNameWithoutExtension然后使用string.Insert添加斜杠