场景是获取服务器上应用的启动用户,需要校验是否为非root等用户。
正则:
^(?!root$|administrator$|supervisor$).*
?!是反向匹配,这个不清楚的去搜下就可以了。
存在的问题是[^] 也是不匹配里面的值,但是使用
^[^(?:root$|administrator$|supervisor$)].*
并不可以,试了一下,应该是这种方式,中括号里面的(?:root)
并不是作为一个整体的表达式处理,而是被当成单个的不被匹配的字符处理了。
比如: ^[^(?:root$)].*
里面的 ( : ?等被处理为单个的字符了,结果就是以这些字符开头的不能被匹配上,如 (root , :root 等。