我使用了以下正则表达式来检测有效的卡号。
[2-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}([ -]?)[0-9]{0,3}[^a-zA-Z]但它没有检测到以下情况:
374355011240344
373116614411000但是,如果我在站点中使用相同的代码:http://www.regexr.com/,所有这些都会被检测到。
这有什么兼容性问题吗?
我想要的是检测任何模式:
下面是我使用的命令。
for i in * */*;
do
grep -ocE "[2-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}([ -]?)[0-9]{0,3}[^a-zA-Z]" "$i";
done `发布于 2016-05-24 08:28:29
这最好使用luhn算法讨论如何在bash中实现它,可以在这里找到https://codereview.stackexchange.com/questions/95211/validating-a-credit-card-number-using-luhns-algorithm。
https://unix.stackexchange.com/questions/285059
复制相似问题