卡號正規表示式幫助

卡號正規表示式幫助

我使用了以下命令+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

相關內容