我创建了一个文本文件并在其中放入了一些电子邮件地址。然后我用 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
您需要引用模式变量