1. * 表示前面的字符可以出现0次或多次
  2. [^>]* 匹配任意数量的非">"字符
  3. \s* 匹配0个或多个空白字符(空格、制表符、换行符等)
  4. # 捕获组
  5. (.*?)
  6. () 捕获组,将匹配的内容保存起来
  7. . 匹配任意字符(除了换行符)
  8. *? 非贪婪匹配(最小匹配),尽可能少地匹配字符

正则表达式示例: [A-Z]+\d+ 的解释如下:

分解说明:

1. [A-Z]+

  • [A-Z] - 字符类,匹配任意一个大写英文字母(A到Z)
  • + - 量词,表示前面的字符类必须出现1次或多次
  • 所以 [A-Z]+ 匹配一个或多个连续的大写字母
    • ✅ 匹配: “A”, “AB”, “ABC”, “SE”
    • ❌ 不匹配: “a”, “A1”, “”(空字符串)

2. \d+

  • \d - 匹配任意一个数字字符(0-9)
  • + - 量词,表示前面的数字必须出现1次或多次
  • 所以 \d+ 匹配一个或多个连续的数字
    • ✅ 匹配: “1”, “12”, “123”, “4502”
    • ❌ 不匹配: “a”, “1a”, “”(空字符串)

3. 整体组合 [A-Z]+\d+

  • 表示必须先有一个或多个大写字母,然后紧接着有一个或多个数字
  • 中间不能有其他字符(包括空格)

正则表达式示例: [A-Z]{1,4}\d{3,} 的解释如下:

分解说明:

1. [A-Z]{1,4}

  • [A-Z] - 匹配任意一个大写英文字母(A到Z)
  • {1,4} - 量词,表示前面的字符必须出现最少1次,最多4次
  • 所以 [A-Z]{1,4} 匹配1到4个连续的大写字母
    • ✅ 匹配: “A”, “AB”, “ABC”, “ABCD”(最多4个)
    • ❌ 不匹配: “ABCDE”(超过4个),”a”(小写字母)

2. \d{3,}

  • \d - 匹配任意一个数字字符(0-9)
  • {3,} - 量词,表示前面的数字必须出现最少3次,最多无限制
  • 所以 \d{3,} 匹配3个或更多连续的数字
    • ✅ 匹配: “123”, “1234”, “123456789”(至少3个)
    • ❌ 不匹配: “12”(少于3个)

3. 整体组合 [A-Z]{1,4}\d{3,}

  • 表示必须先有1-4个大写字母,然后紧接着有3个或更多数字
  • 中间不能有其他字符

匹配示例:

能匹配的字符串

  • "SE4502" → [A-Z]{1,4}匹配”SE”(2个字母),\d{3,}匹配”4502”(4个数字)
  • "A123" → [A-Z]{1,4}匹配”A”(1个字母),\d{3,}匹配”123”(3个数字)
  • "ABC12345" → [A-Z]{1,4}匹配”ABC”(3个字母),\d{3,}匹配”12345”(5个数字)
  • "ABCD999" → [A-Z]{1,4}匹配”ABCD”(4个字母,上限),\d{3,}匹配”999”(3个数字)

不能匹配的字符串

  • "SE45" → 数字部分只有2个,不够3个
  • "SE4" → 数字部分只有1个
  • "ABCDE123" → 字母部分5个,超过4个上限
  • "S12" → 数字部分只有2个,不够3个
  • "SE4502AB" → 后面还有字母
  • "123SE" → 数字在前,字母在后

[A-Z]+\d+ 的区别:

正则 字母部分 数字部分 示例
[A-Z]+\d+ 1个或更多 1个或更多 “ABCDEFGH12”
[A-Z]{1,4}\d{3,} 1-4个 3个或更多 “SE4502”

这个正则更适合匹配标准的产品型号,比如:

  • "SE4502"
  • "AB123"
  • "M999"
  • "PROD12345" ✗(字母超过4个)
  1. # 示例
  2. 关于php中正则匹配包括换行符在内的任意字符
  3. preg_match_all('/<div class="list">.*?<\/div>/is', $content, $data);

示例:

  1. $v = 'SE3083广物国际';
  2. // 使用捕获组来分别匹配两部分
  3. preg_match('/([A-Z]+\d+)(.*)/', $v, $resone);
  4. $code = $resone[1]; // $resone[1] 存放第一个括号匹配到的内容
  5. $name = $resone[2]; // $resone[2] 存放第二个括号匹配到的内容
  6. echo "代码: " . $code; // 输出: 代码: SE3083
  7. echo "名称: " . $name; // 输出: 名称: 广物国际