返回

正则表达式教程:中文姓名校验

正则表达式

一、正则解释

正则表达式:^(?:[\u4e00-\u9fa5·]{2,16})$

  • ^: 匹配字符串的开头。
  • (?: ... ): 非捕获组,不捕获匹配到的内容。
  • [\u4e00-\u9fa5·]: 匹配汉字或“·”(中文姓名中常见的中间点)。
  • {2,16}: 匹配 2 到 16 个汉字或“·”。
  • $: 匹配字符串的结尾。

二、使用场景

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

  • 验证中文姓名输入的正确性。
  • 从文本中提取中文姓名。
  • 匹配符合中文姓名格式的数据。

三、代码示例

JavaScript

const regex = /^(?:[\u4e00-\u9fa5·]{2,16})$/;
const name = "葛二蛋";
const result = regex.test(name);
console.log(result); // true

Java

import java.util.regex.Pattern;

public class ChineseNameValidator {

    public static boolean isValid(String name) {
        Pattern pattern = Pattern.compile("^(?:[\u4e00-\u9fa5·]{2,16})
import java.util.regex.Pattern;

public class ChineseNameValidator {

    public static boolean isValid(String name) {
        Pattern pattern = Pattern.compile("^(?:[\u4e00-\u9fa5·]{2,16})$");
        return pattern.matcher(name).matches();
    }

    public static void main(String[] args) {
        String name = "葛二蛋";
        boolean result = isValid(name);
        System.out.println(result); // true
    }
}
quot;
); return pattern.matcher(name).matches(); } public static void main(String[] args) { String name = "葛二蛋"; boolean result = isValid(name); System.out.println(result); // true } }

PHP

<?php

$regex = "/^(?:[\u4e00-\u9fa5·]{2,16})$/";
$name = "葛二蛋";
$result = preg_match($regex, $name);

if ($result) {
    echo "是中文姓名";
} else {
    echo "不是中文姓名";
}

Python

import re

regex = r"^(?:[\u4e00-\u9fa5·]{2,16})
import re

regex = r"^(?:[\u4e00-\u9fa5·]{2,16})$"
name = "葛二蛋"
result = re.match(regex, name)

if result:
    print("是中文姓名")
else:
    print("不是中文姓名")
quot;
name = "葛二蛋" result = re.match(regex, name) if result: print("是中文姓名") else: print("不是中文姓名")