SemVer からプレフィックスを削除しようとし1.2.3-prefix.42
ています。つまり、 1.2.3
.
https://github.com/mojombo/semver/issues/32#issuecomment-7663411にあるこの正規表現を使用しています:
^(\d+\.\d+\.\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?
Ruby のgsub
メソッドを使用すると、次のように動作します。
puts '1.2.3-alpha.4'.gsub(/^(\d+\.\d+\.\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/, '\1')
# => 1.2.3
しかしsed
、端末から使用する場合はそうではありません:
$ echo '1.2.3-alpha.4' | sed -e 's/^(\d+\.\d+\.\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/\1/g'
$ 1.2.3-alpha.4
私は何が欠けていますか?
Mac OS X で zsh を使用しています。
ありがとう