我正在尝试检查无效的文件名.我希望文件名只包含小写,大写,数字,空格,句号,下划线,短划线和括号.我试过这个正则表达式:
$regex = [regex]"^([a-zA-Z0-9\s\._-\)\(]+)$" $text = "hel()lo" if($text -notmatch $regex) { write-host 'not valid' }
我收到此错误:
Error: "parsing "^([a-zA-Z0-9\s\._-\)\(]+)$" - [x-y] range in reverse order"
我究竟做错了什么?
解决方法
尝试将 – 移动到角色类的末尾
^([a-zA-Z0-9\s\._\)\(-]+)$
在字符类的中间,它需要被转义,否则它定义一个范围