grep 的基本正则表达式中的电子邮件匹配正则表达式是什么?

grep 的基本正则表达式中的电子邮件匹配正则表达式是什么?

我创建了一个文本文件并在其中放入了一些电子邮件地址。然后我用 grep 找到它们。确实有效:

# pattern="^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,}"
# grep -E $pattern regexfile

但只要我保留扩展正则表达式的 -E 选项即可。我需要如何更改上述正则表达式才能使用不带 -E 选项的 grep ?

答案1

请注意,匹配电子邮件地址比您拥有的要困难得多。看 摘自《掌握正则表达式》一书

但是,要回答您的问题,对于基本正则表达式,您的量词需要是*, \+\{m,n\}(带有反斜杠)之一

pattern='^[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.[a-z]\{2,\}'
grep "$pattern" regexfile

您需要引用模式变量

相关内容