卡号正则表达式帮助

卡号正则表达式帮助

我使用了以下命令+REGEX 列出了一组文件中包含卡号的所有文件。

grep -r -l -e '[3-6]\d{3}([\ \-]?)\d{4}([\ \-]?)\d{4}([\ \-]?)\d{3,4}' *

我已经在不同的应用程序中测试了这个正则表达式并且它是成功的。

答案1

普通 grep 使用基本的正则表达式。您的正则表达式使用-d?,但{m,n}无法识别。

你想要grep -E,但可能不承认\d。如果没有改成[0-9]

grep -Erle '[3-6][0-9]{3}([ -]?)[0-9]{4}([ -]?)[0-9]{4}([ -]?)[0-9]{3,4}' *

或者使用grep -P与 perl 兼容的正则表达式

参考:https://www.gnu.org/software/gnulib/manual/html_node/Regular-expression-syntaxes.html

相关内容