不特定の長さの数字の後に 15 桁の数字が続きます。
例えば:
(長さ不定の乱数) + 15桁の数字 --> 3 + 15桁の数字
(長さ不定の乱数) + 15桁の数字 --> 32831 + 15桁の数字
(長さ不定の乱数) + 15桁の数字 --> 31 + 15桁の数字
Python で RegEx を使用して、「パート 1」(長さが不明) と最後の 15 桁を「パート 2」としてキャプチャできますか?
必要なのは最後の 15 文字以外のすべてのように思えますが、なぜこの単純なタスクに正規表現を使用するのでしょうか? 文字列の一部を取得するだけです (以前に数値だった場合は、単純に文字列に変換し、これを行ってから元に戻します)。
>>> a = "3123456789123456" #3 + 15 digit number
>>> (a[:-15], a[-15:])
('3', '123456789123456')
>>> a = "32831123456789123456" #32831 + 15 digit number
>>> (a[:-15], a[-15:])
('32831', '123456789123456')
>>> a = "31123456789123456" #31 + 15 digit number
>>> (a[:-15], a[-15:])
('31', '123456789123456')
素敵で簡単。
次の正規表現を試してください。
^(\d+)(\d{15})$
説明:
^ Start of string
$ End of string
\d Any digit
{15} Repeat 15 times
+ Repeat one or more times.
(...) Capturing group
確かに、 regex を使用する(\d*)(\d{15})
か、やり過ぎです(?<!\d)(\d*)(\d{15})(?!\d)