私がしようとしているのは、プレフィックス(1k = 1000
,-1ki = -1024
など)。'K'、 'M'、 'G'、 'Mi'、 'Gi'などと一致する方法はありますが、単調な 'i'の添え字は使用しないでください
^([+-]?)(\d+)((?i)[KMGTPEZY]?(?i)i?$)
しかし、それは1i
と一致するので、私はそれが文字クラス内の文字の一つが先行する場合にのみi
に一致する正規表現を見つけようとしています:この正規表現は近くにあります。 (?i)[KMGTPEZY]
を繰り返すように持っている洗練...
^([+-]?)(\d+)((?i)[KMGTPEZY]?(?<=(?i)[KMGTPEZY])(?i)i?$)
これは1i
と一致しませんが、今では1
のような接頭辞なしで数とは一致しません、それはそうですので、私:私は後読みを使用してみましたこれを行うより優雅な方法があることを期待していました。それはPythonでも動作します:-)。
それが答えに影響を与える場合には、完全な問題は、私は1
、2
、3
、[5-10)
、20-25
、1k-2k
、、10T
のようなものを扱うようにしたいです...プレフィックス速記のための適切な番号に置き換えて(1k=1000
、 10ki=10240
など)、実際のシーケンスのリストを生成します(したがって、[5-10)
から5,6,7,8,9
、20-25
は[20-25]
または20,21,22,23,24,25
に相当します)。しかし、今、私は接頭辞略記と一致する最初のステップにいます。
本当にありがとうございました。私の質問に答えるだけでなく、大文字小文字を区別しないフラグのグローバルな性質を認識していませんでした。 –