Shell

grep 的基本正則表達式中的電子郵件匹配正則表達式是什麼?

  • April 7, 2015

我創建了一個文本文件並在其中放入了一些電子郵件地址。然後我用 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

您需要引用模式變數

引用自:https://unix.stackexchange.com/questions/194912