拆分文件名-奇怪的行为
我正在尝试拆分文件名,例如 XXX_YYYY-YYYY_fff.xxx
如果我正在使用
'XXX_YYYY-UUUU_fff.xxx' -split '[-_`.]'
一切正常,显示:
XXX
YYYY
UUUU
fff
xxx
但是当我使用
'XXX_YYYY-UUUU_fff.xxx' -split '[_-`.]'
它不会在破折号上拆分:
XXX
YYYY-UUUU
fff
xxx
任何人都可以解释为什么?
回答
-指定正则表达式中的字符范围。为了得到你想要的,“逃避”-与; 例如:
C:> 'XXX_YYYY-UUUU_fff.xxx' -split '[_-.]'
XXX
YYYY
UUUU
fff
xxx
即,使用以下任何字符拆分字符串:_, -, 或.。
你也可以告诉正则表达式解析器 the-是集合中的一个文字字符,方法是将它放在集合的开头,就在集合的后面[或集合的末尾,方法是将它放在 之前],如下所示:
[-_.]
或者
[_.-]