私が一致させようとしているパターンは、いくつかの文字 (文字 + 数字 + ハイフン(-)
)、次に 5 桁、次に 9 桁です。パターンの各部分はハイフンで区切られます(-)
。5 桁と 9 桁の部分はオプションです。つまり、一方が存在し、他方が存在しないか、両方が存在するか、両方が存在しない可能性があります。したがって、パターンは次のようになります
bla-12-bla-98-bla-12345-123456789 all parts(characters+5-digit+9-digit)
bla-bla-123-12345 9-digit part absent
blasd-123456789 5-digit part absent
no-1045-numeric-bla-bla both numeric parts absent
私が思いついた正規表現はこれです
.+(\d{5})?-?(\d{9})?$
上記の理由は次のようになります。.+
最初の はすべての文字に一致するため(\d{5})?
、5 桁の部分の 0 または 1 つのインスタンスが存在する可能性があるため、省略可能になります。
の場合-?
、両方の数値部分が存在しない場合は存在しません-
が、両方の数値部分が存在する場合は 1 に-
なるため、ここでもオプションにします。
についても同様です(\d{9})?
。
しかし、上記のパターンは何にも一致しません。私は python を使用しているので、group(1)
とgroup(2)
returnの両方を使用していNone
ます。
上記の何が問題になっていますか?