正则表达式信用卡不在评论中

时间:2016-03-20 14:45:24

标签: regex

我正在尝试使用正则表达式来检测源文件中的硬编码信用卡/帐号,而不是评论。

模式:nnnn-nnnn-nnnn-nnnn或nnnnnnnn或nnnnnn / nn

(?:\/{2}.*?$|\/\*.*?\*\/)*.?((?:\d{4}-){3}\d{4}|\d{8}|\d{6}\/\d{2})

标志:g m s

https://www.debuggex.com/i/cEkyuYaQZ7w8viAC.png

Debuggex Demo

我坚持附上的例子, 如果//存在,我的算法会跳到行尾或/*跳到*/,然后匹配其中一个模式。 我设法匹配评论和模式正确购买不能让他们一起工作。 换句话说,如果我的表达中没有错误,我应该如何将(?:\/{2}.*?$|\/\*.*?\*\/)((?:\d{4}-){3}\d{4}|\d{8}|\d{6}\/\d{2})联系起来。

1 个答案:

答案 0 :(得分:0)

您应该能够使用这个忽略注释行的内容:

(?:\/{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