在负前瞻之前需要帮助正则表达式可选空格

时间:2017-03-02 14:02:03

标签: regex negative-lookahead

我正在构建一个正则表达式来查找文件中的所有密码。目前的正则表达式是:

(?:pass)(?:word)?(?:[\ ]{0,1})(?:[:=;,]{1})(?:[\ ]{0,1})(?!function)(.[^\s]*)

问题是我不想要包含"功能"在可选的空格之后。

password = potato123! found, is ok
$dbpass=train123; = found, is ok
pass:function($pass); = not found, is ok
$dbpassword= function('dontfindme'); = found, should not be found

看到它的实际效果: https://regex101.com/r/zT1kI3/35

谢谢!

纪尧姆

2 个答案:

答案 0 :(得分:1)

最简单的解决方案是移动可选空格的外观,使其成为function检查的一部分:

(?:pass)(?:word)?(?:[\ ]{0,1})(?:[:=;,]{1})(?![\ ]{0,1}function)(.[^\s]*)

Updated regex101

答案 1 :(得分:0)

此正则表达式是否与您的其他样本匹配?

(?:pass|password)\s*[:=;,]\s*(?!\s{0,}function)(\S*)

演示:https://regex101.com/r/PXWw6j/1