方法有很多,例如使用首尾位置标记^$+非法字符集[^]实现:
regex = r'^[^\\/:\*\?"<>\|]+$' #不能为空,不能含有\/:*?"<>|等字符tests = ['abc_def','abc.def','abc/def','\?"','']matches = [i for i in tests if re.match(regex,i)]print(matches)
还可以通过负向零宽断言(?!)等方式实现。