2
$ reg='(\.js)|(\.txt)|(\.html)$'
$ [[ 'flight_query.jsp' =~ $reg ]]
$ echo $?
0

*.jsp 不应该基于正则表达式匹配,但实际上没有。

有什么建议么?

4

1 回答 1

8

删除了一条有用的评论。该评论表明运算符优先级是正则表达式通过的原因。他建议使用以下正则表达式作为修复。

$ reg='(\.js|\.txt|\.html)$'
$ if [[ 'flight_query.jsp' =~ $reg ]]; then echo 'matches'; else echo "doesn't match"; fi
doesn't match
$ if [[ 'flight_query.js' =~ $reg ]]; then echo 'matches'; else echo "doesn't match"; fi
matches

这个正则表达式也有效(\.js$)|(\.txt$)|(\.html$)

于 2012-05-21T06:25:41.200 回答