当前位置: 技术问答>linux和unix
正则表达式小疑问
来源: 互联网 发布时间:2016-11-18
本文导语: 今天新上手正则表达式,有这样一个例子: %egrep "^blueflybird|BLUEFLYBIRD.*E.$" sample 这里后一个分支末尾 "*E.$" 部分的'.'前面为什么没有转义符呢,然后shell把它翻译成了以大写E+英文句号'.'结尾的句子,为什么不是被解...
今天新上手正则表达式,有这样一个例子:
%egrep "^blueflybird|BLUEFLYBIRD.*E.$" sample
这里后一个分支末尾
"*E.$"
部分的'.'前面为什么没有转义符呢,然后shell把它翻译成了以大写E+英文句号'.'结尾的句子,为什么不是被解释为大写E+任一非换行符呢?毕竟'.'没被转义啊~?然后我尝试了下面这个指令:
%egrep "^blueflybird|BLUEFLYBIRD.*E.$" sample
结果是这个正则表达式无法匹配以"E."结尾的句子。更困惑了,望高人帮忙解惑,谢谢~
%egrep "^blueflybird|BLUEFLYBIRD.*E.$" sample
这里后一个分支末尾
"*E.$"
部分的'.'前面为什么没有转义符呢,然后shell把它翻译成了以大写E+英文句号'.'结尾的句子,为什么不是被解释为大写E+任一非换行符呢?毕竟'.'没被转义啊~?然后我尝试了下面这个指令:
%egrep "^blueflybird|BLUEFLYBIRD.*E.$" sample
结果是这个正则表达式无法匹配以"E."结尾的句子。更困惑了,望高人帮忙解惑,谢谢~
|
我试验是可以的
$ echo "abcEa"|egrep "*E.$"
abcEa
$ echo "abcEa"|egrep "*E.$"
$ echo "abcE."|egrep "*E.$"
abcE.
$ echo "abcEa"|egrep "*E.$"
abcEa
$ echo "abcEa"|egrep "*E.$"
$ echo "abcE."|egrep "*E.$"
abcE.