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 に答える