返回

正则表达式教程:军官/士兵证校验正则

正则表达式

一、正则解释

^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$

说明:

  • ^: 匹配字符串的开头。
  • [\u4E00-\u9FA5]: 匹配一个汉字。
  • (字第): 匹配 "字第"
  • ([0-9a-zA-Z]{4,8}): 匹配 4 到 8 位的数字或字母。
  • (号?): 匹配可选的 "号"
  • $: 匹配字符串的结尾。

二、使用场景

此正则表达式可用于验证军官/士兵证证号的格式是否正确,例如:

  • 军字第2001988号
  • 士字第P011816X号

三、代码示例

JavaScript

const regex = /^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/;
const testText = '军字第2001988号,士字第P011816X号';
const matches = testText.match(regex);
console.log(matches); // ['军字第2001988号', '士字第P011816X号']

Java

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

public class Test {
    public static void main(String[] args) {
        String regex = "^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        String regex = "^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$";
        String testText = "军字第2001988号,士字第P011816X号";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(testText);
        while (matcher.find()) {
            System.out.println(matcher.group()); // 军字第2001988号 士字第P011816X号
        }
    }
}
quot;
; String testText = "军字第2001988号,士字第P011816X号"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(testText); while (matcher.find()) { System.out.println(matcher.group()); // 军字第2001988号 士字第P011816X号 } } }

PHP

<?php
$regex = '/^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$/';
$testText = '军字第2001988号,士字第P011816X号';
preg_match_all($regex, $testText, $matches);
print_r($matches[0]); // ['军字第2001988号', '士字第P011816X号']

Python

import re

regex = r'^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)
import re

regex = r'^[\u4E00-\u9FA5](字第)([0-9a-zA-Z]{4,8})(号?)$'
testText = '军字第2001988号,士字第P011816X号'
matches = re.findall(regex, testText)
print(matches)  # ['军字第2001988号', '士字第P011816X号']
#x27;
testText = '军字第2001988号,士字第P011816X号' matches = re.findall(regex, testText) print(matches) # ['军字第2001988号', '士字第P011816X号']