我正在尝试编写一个快速脚本来美化passwd文件,以破解我正在处理的vm盒。我遇到了麻烦,因为正则表达式的抓取能力超出了我的期望。
我将其用作我的正则表达式模式:
passwd_line_regex = re.compile(r'[a-zA-Z0-9_]+:[a-zA-Z0-9:*&_/\ ]+[/-][a-zA-Z0-9_]+\s{1}')
然后我通过这个(较小的摘录):
root:*:0:0:Charlie &:/root:/bin/csh toor:*:0:0:Bourne-again Superuser:.....
并使用findall返回列表,但不是获取root::0:0:Charlie&:/ root:/ bin / csh AND toor::0:0:Bourne-再一次,我像这样将它们重新聚在一起:
['root:*:0:0:Charlie &:/root:/bin/csh toor:*:0:0:Bourne-again ', 'Superuser:/....
如何停止这种行为?我希望它在(/或-)example(space)第一次出现时停止,在这种情况下,在/ bin / csh的末尾停止,但是我试图查找所有条目,因此我需要从这一点继续与下一个条目。