我有一个在regex101上验证的regex表达式:[a-zA-Z0-9-_.]+@[a-zA-Z0-9-]+.+[a-zA-Z0-9-]{2,4}
但当我尝试用sed运行它时,我得到了:sed: -e expression #1, char 52: Invalid range end
据我所知,当你定义你的范围时,这通常是一个问题,比如:在sed的某些版本中使用A-z,但我在这里使用A-zA-z?所以我想是特殊字符导致了错误,但我该如何解决呢?
Sed:$( sed -E -n '/[a-zA-Z0-9-_.]+@[a-zA-Z0-9-]+.+[a-zA-Z0-9-]{2,4}/p' < emails.txt )
在第一个字符类[a-zA-Z0-9-_.]
中,这不是有效范围:9-_
将-
移动到字符类中的最后一个字符:[a-zA-Z0-9_.-]