我正在尝试在登录前用regex隐藏密码
$ cat rubytest.rb
str = 'login=luser-name&password=secretpw&otherstuff=dontcare'
print "1: ",str.sub(/password=.+(?<post>(&.+))/,'password=<redacted>\k<post>'),"\n"
print "2: ",str.sub(/password=.+(?<post>(&.+)?)/,'password=<redacted>\k<post>'),"\n"
str = 'login=luser-name&password=secretpw'
print "3: ",str.sub(/password=.+(?<post>(&.+))/,'password=<redacted>\k<post>'),"\n"
print "4: ",str.sub(/password=.+(?<post>(&.+)?)/,'password=<redacted>\k<post>'),"\n"红宝石rubytest.rb
1: login=luser-name&password=<redacted>&otherstuff=dontcare
2: login=luser-name&password=<redacted>
3: login=luser-name&password=secretpw
4: login=luser-name&password=<redacted>1:如果str有比密码更多的数据可以编辑,
2:不打算对EoL进行修改,
他:一点也不红,
4:当密码是str中的最后一项时工作。
如何将regex 1和4结合起来?
发布于 2015-12-21 15:39:13
您不能这样做,除非&不能成为密码字符。在这种情况下:
/password=[^&]+(?<post>(&.+)?)/无论如何,如果它在一个url中,您将不得不对符号进行代码转换。
https://stackoverflow.com/questions/34399161
复制相似问题