我正在尝试实现一个正则表达式,以检测源文件中而不是注释中的硬编码信用卡/帐号。
模式:nnnn-nnnn-nnnn-nnnn或nnnnnnnn或nnnnnn / nn
(?:\/{2}.*?$|\/\*.*?\*\/)*.?((?:\d{4}-){3}\d{4}|\d{8}|\d{6}\/\d{2})
标志:gms
https://www.debuggex.com/i/cEkyuYaQZ7w8viAC.png
我停留在所附的示例中,如果//
存在,我的算法将跳到行尾,或者如果/*
跳到*/
然后匹配其中一种模式。我设法使评论和模式正确匹配,以使它们无法一起使用。换句话说,我应该如何连接(?:\/{2}.*?$|\/\*.*?\*\/)
带((?:\d{4}-){3}\d{4}|\d{8}|\d{6}\/\d{2})
,如果在我的表情没有任何错误。
您应该可以使用它来忽略注释行:
(?:\/{2}.*?$|\/\*.*?\*\/)(*SKIP)(*FAIL)|((?:\d{4}-){3}\d{4}|\d{8}|\d{6}\/\d{2})
Regex101演示:https ://regex101.com/r/kI9lB7/1
您可以在http://www.rexegg.com/regex-best-trick.html上找到有关此方法的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句