したがって、マスクがある場合とない場合があるipv6アドレスを照合する必要があります。残念ながら、ライブラリを使用して文字列を解析することはできません。
この場合、マスクビットは十分に簡単です。
(?:\/\d{1,3})?$/
難しい部分は、ipv6アドレスのさまざまな形式です。:: beef、beef ::、beef::beefなどと一致する必要があります。
更新:私はもうすぐそこにいます。
/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i
私は、この場合、perlの正規表現の使用に制限されています。