【问题标题】:Regex for Hex Digits十六进制数字的正则表达式
【发布时间】:2014-03-05 17:10:09
【问题描述】:

我对 Regex 很陌生,所以我无法弄清楚如何进行以下操作:

正则表达式查找颜色和的 Html 样式十六进制表示 如何制作正则表达式来查找灰色的十六进制代码,例如#7C7C7C?

非常感谢!

【问题讨论】:

    标签: java regex hex


    【解决方案1】:

    使用捕获组和反向引用:

    "#([0-9A-Fa-f]{2})\\1\\1"
    

    例子:

    Pattern pattern = Pattern.compile("#([0-9A-Fa-f]{2})\\1\\1");
    String css = "#abcdef #7C7C7C #001122";
    
    Matcher matcher = pattern.matcher(css);
    if (matcher.find())
        System.out.println(matcher.group());
    

    输出:

    #7C7C7C
    

    【讨论】:

    • 此模式与 #FFFFff #fffffF 等颜色不匹配。大多数浏览器都接受这些。
    • @neoexpert 解决方法在匹配前将字符串转换为小写/大写。
    • 我用这个:“#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\\b”。很好,因为它忽略了无效的颜色代码,如#ffff
    • @neoexpert,这种模式并不能解决 OP 的问题。它可以匹配非灰色的颜色代码。
    猜你喜欢
    • 2019-04-25
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多