3

アプリケーションのバージョン番号が 1.18.10 より大きいかどうかを確認する必要があります。この場合、正規表現はどのようになりますか?

4

4 に答える 4

4

このバッテリーは Python の に既に含まれているようですdistutils.version:

from distutils.version import LooseVersion
LooseVersion("1.18.11") > LooseVersion("1.18.10")
#True

LooseVersion("1.2.11") > LooseVersion("1.18.10")
#False (note that "2">"18" is True)

LooseVersion("1.18.10a") > LooseVersion("1.18.10")
#True

これは、バージョン番号の部分を整数として分割し、数値以外の部分 (アルファベットの拡張子など) を別々に正しく比較することを考慮に入れています。(代替の動作(辞書式比較)が必要な場合は、結果の文字列のタプルを直接比較できますversion_num.split("."))

バージョン文字列のアルファベット文字でStrictVersion例外 ( ) をスローするバリアントもあることに注意してください。両方を非推奨にすることを計画しているPEP386ValueErrorも参照してください。NormalizedVersion

于 2013-06-11T09:51:09.573 に答える