/ etc/passwd中的行的正则表达式验证

Mik*_*ike 5 regex unix perl

我需要验证/ etc/passwd文件是否有效,并且认为正则表达式是一个好主意,以验证不是注释的行.我如何验证一条线:

root:*:0:0:System Administrator:/var/root:/bin/sh 
Run Code Online (Sandbox Code Playgroud)

经过一些研究,第5个字段(系统管理员)可以包含其他数据,如电子邮件和地址,第二个字段可以包含除a之外的任何内容:,最后2个字段是完整路径.

有什么线索我会为此创建一个正则表达式?

pha*_*ace 5

不希望变得滑稽 - Passwd :: Unix可能是你最好的选择.


the*_*ejh -2

像这样的东西吗?

^(#.*|[a-z]*:[^:]*:[0-9]*:[0-9]*:[^:]*:/[^:]*:/[^:]*)$
Run Code Online (Sandbox Code Playgroud)

(假设用户名由小写字母组成)