文字列でIPv4アドレスまたは次のCIDRブロックのいずれかを確認する必要があります:/16または/24。したがって、192.168.0.1は一致するはずです。192.168.0.0/16が一致する必要があります。192.168.0.0/17は、次の正規表現を使用しているのと一致しないはずです。
re.compile(r'^([0-9]{1,3}\.){3}[0-9]{1,3}(/(16|24))?')
これはすべてのIPアドレスに一致しますが、192.168.0.0/aaaaのような文字列にも一致します
ここで、正規表現を変更した場合(最後に?を削除):
re.compile(r'^([0-9]{1,3}\.){3}[0-9]{1,3}(/(16|24))')
CIDRブロック/16または/24と一致しますが、IPアドレス(例:192.168.0.1)とは一致しなくなります。
「じゃないの?」オプションの発生についてグループをチェックすることになっていますか?私は何が間違っているのですか?
注:IPアドレスの正規表現自体が完全ではないことは知っていますが、説明されている問題についてサポートを得ることに興味があります。