bashにて以下コマンドを実行しました。
$ echo 'a,aa a' | sed -e 's/a,.+/b/g' a,aa a $ echo 'a,aa a' | sed -e 's/a,.*/b/g' b
どちらも「b」とのみ出力されるかと思ったのですが、
1つめは違うように出力されています。
*は直前の文字が0文字以上
+は直前の文字が1文字以上で、
.は任意の文字という認識です。
であれば、*がマッチしている部分は1文字以上であるので、
どちらも出力結果が「b」になると思いました。が、違います。
なぜ+と*で出力結果が異なるのでしょうか。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/08 17:44