返回

正则表达式教程:16进制颜色匹配

正则表达式

一、正则解释

正则表达式:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/

解释:

  • ^#? :匹配开头处可选的 "#" 字符。
  • ([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4}) :匹配以下四种格式的 16 进制颜色代码:
    • 六位十六进制数字(例如:#ffffff)
    • 三位十六进制数字(例如:#fff)
    • 八位十六进制数字(例如:#ffffff00)
    • 四位十六进制数字(例如:#ff00)
  • $ :匹配字符串的末尾。

二、使用场景

此正则表达式可用于:

  • 验证输入的 16 进制颜色代码是否有效。
  • 从文本中提取 16 进制颜色代码。
  • 比较和匹配不同的 16 进制颜色代码。

三、代码示例

JavaScript

const regex = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/;

const isValidColor = (color) => {
  return regex.test(color);
};

Java

import java.util.regex.Pattern;

public class ColorMatcher {

  private static final Pattern PATTERN = Pattern.compile("^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})
import java.util.regex.Pattern;

public class ColorMatcher {

  private static final Pattern PATTERN = Pattern.compile("^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$");

  public static boolean isValidColor(String color) {
    return PATTERN.matcher(color).matches();
  }
}
quot;
); public static boolean isValidColor(String color) { return PATTERN.matcher(color).matches(); } }

PHP

<?php

$regex = '/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$/';

function isValidColor($color) {
  return preg_match($regex, $color);
}

Python

import re

regex = r'^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})
import re

regex = r'^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3}|[a-fA-F0-9]{8}|[a-fA-F0-9]{4})$'

def is_valid_color(color):
  return bool(re.match(regex, color))
#x27;
def is_valid_color(color): return bool(re.match(regex, color))