查看是否可行:
try { if (subjectString.matches( "(?ix)\A(?: # Anchor addressn" + " (?: # Mixedn" + " (?:[A-F0-9]{1,4}:){6} # Non-compressedn" + " |(?=(?:[A-F0-9]{0,4}:){2,6} # Compressed with 2 to 6 colonsn" + " (?:[0-9]{1,3}\.){3}[0-9]{1,3} # and 4 bytesn" + " \z) # and anchoredn" + " (([0-9A-F]{1,4}:){1,5}|:)((:[0-9A-F]{1,4}){1,5}:|:) # and at most 1 double colonn" + " |::(?:[A-F0-9]{1,4}:){5} # Compressed with 7 colons and 5 numbersn" + " )n" + " (?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3} # 255.255.255.n" + " (?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])# 255n" + "| # Standardn" + " (?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4} # Standardn" + "| # Compressedn" + " (?=(?:[A-F0-9]{0,4}:){0,7}[A-F0-9]{0,4} # Compressed with at most 7 colonsn" + " \z) # and anchoredn" + " (([0-9A-F]{1,4}:){1,7}|:)((:[0-9A-F]{1,4}){1,7}|:) # and at most 1 double colonn" + "|(?:[A-F0-9]{1,4}:){7}:|:(:[A-F0-9]{1,4}){7}# Compressed with 8 colonsn" + ")/[A-F0-9]{0,4}\z # Anchor address")) { // String matched entirely } else { // Match attempt failed } } catch (PatternSyntaxException ex) { // Syntax error in the regular expression}大约一年前,我购买了一个非常有用的程序RegexMagic,用于计划使用的一些复杂正则表达式。
假定它是Java,所以应该编译,我假设/ 60可以在0000和FFFF的范围之间,您可以修改最后一部分。
/ [A-F0-9] {0,4}是我添加到正则表达式中以匹配您的示例的内容。



