コロンで区切られたキーと値のペアを抽出するために `expr match` を取得するにはどうすればよいですか?

コロンで区切られたキーと値のペアを抽出するために `expr match` を取得するにはどうすればよいですか?

の場合、が出力されるmyvar="present-value: 1"はずです。しかし、代わりに空白が出力され、一致がないことを示すゼロ以外のステータス コードで終了します。expr match "$myvar" '\([0-9]\)'1

どうすれば一致させることができますか?

答え1

これは私にとってはうまくいきました

myvar="present value: 4"
expr match "$myvar" '.*\([0-9]\)'

出力:

4

答え2

experman ページによれば、matchは 用ですanchored pattern match of REGEXP in STRING。REGEX は STRING の両端に固定されているため、部分文字列のみに一致させることはできません。

関連情報