Shell
grep 的基本正則表達式中的電子郵件匹配正則表達式是什麼?
我創建了一個文本文件並在其中放入了一些電子郵件地址。然後我用 grep 找到它們。確實有效:
# pattern="^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,}" # grep -E $pattern regexfile
但只要我保留擴展正則表達式的 -E 選項。我需要如何更改上述正則表達式才能在沒有 -E 選項的情況下使用 grep?
請注意,匹配電子郵件地址比您擁有的要困難得多。查看 Mastering Regular Expressions 一書中的摘錄
但是,要回答您的問題,對於基本的正則表達式,您的量詞需要是
*
,\+
或\{m,n\}
(帶有反斜杠)之一pattern='^[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.[a-z]\{2,\}' grep "$pattern" regexfile
您需要引用模式變數