返回

正则表达式教程:验证车牌号(新能源+非新能源)

正则表达式

一、正则解释

正则表达式:

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/

说明:

  • ^ 表示开头。
  • [] 表示字符类。
  • [京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领] 匹配省份简称。
  • [A-HJ-NP-Z] 匹配汉字或字母。
  • {4,5} 匹配 4 或 5 个字符。
  • [A-HJ-NP-Z0-9] 匹配字母或数字。
  • [挂学警港澳] 匹配特殊后缀。
  • $ 表示结尾。

二、使用场景

此正则表达式可用于以下场景:

  • 验证中国大陆的新能源和非新能源车牌号的有效性。
  • 从文本中提取车牌号。
  • 匹配符合车牌号格式的字符串。

三、代码示例

JavaScript

const regex = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
const input = "京A12345D";
const result = regex.test(input);
console.log(result); // true

Java

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class CarPlateValidator {

    private static final String CAR_PLATE_PATTERN = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class CarPlateValidator {

    private static final String CAR_PLATE_PATTERN = "^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$";

    public static boolean isValidCarPlate(String carPlate) {
        Pattern pattern = Pattern.compile(CAR_PLATE_PATTERN);
        Matcher matcher = pattern.matcher(carPlate);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String input = "京A12345D";
        boolean isValid = isValidCarPlate(input);
        System.out.println(isValid); // true
    }
}
quot;
; public static boolean isValidCarPlate(String carPlate) { Pattern pattern = Pattern.compile(CAR_PLATE_PATTERN); Matcher matcher = pattern.matcher(carPlate); return matcher.matches(); } public static void main(String[] args) { String input = "京A12345D"; boolean isValid = isValidCarPlate(input); System.out.println(isValid); // true } }

PHP

<?php
$regex = "/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/";
$input = "京A12345D";
preg_match($regex, $input, $matches);
var_dump($matches); // array("京A12345D")
?>

Python

import re

regex = r"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]
import re

regex = r"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$"
input = "京A12345D"
result = re.match(regex, input)
print(result.group()) # 京A12345D
quot;
input = "京A12345D" result = re.match(regex, input) print(result.group()) # 京A12345D