如何筛选仅包含8位数字的序列号(serialnumber)
如何筛选仅含8位数字的序列号?
核心是用正则表达式匹配恰好8位数字的字符串,通用正则为 ^\d{8}$:
^匹配字符串开头\d匹配任意单个数字{8}指定前面的规则恰好重复8次$匹配字符串结尾
以下是不同场景下的具体实现:
1. Excel/Google Sheets
用REGEXMATCH函数判断单元格内容是否符合规则:
=REGEXMATCH(A1,"^\d{8}$")
公式返回TRUE的行就是符合要求的序列号,直接筛选即可。
2. Python
借助re模块的fullmatch方法,确保整个字符串完全匹配规则:
import re serial_list = ["12345678", "12343546565", "43764374", "23728328372873"] filtered_serials = [s for s in serial_list if re.fullmatch(r'\d{8}', s)] print(filtered_serials) # 输出: ['12345678', '43764374']
3. SQL
不同数据库的正则语法略有差异,示例如下:
- MySQL/MariaDB:
SELECT serialnumber FROM your_table WHERE serialnumber REGEXP '^[0-9]{8}$';
- PostgreSQL:
SELECT serialnumber FROM your_table WHERE serialnumber ~ '^[0-9]{8}$';
- SQL Server:
SELECT serialnumber FROM your_table WHERE LEN(serialnumber) = 8 AND PATINDEX('%[^0-9]%', serialnumber) = 0;
4. 文本编辑器(VS Code/Notepad++等)
开启正则查找模式,输入查找规则 ^\d{8}$,并勾选“匹配整行”选项,即可选中所有符合要求的序列号行。
内容的提问来源于stack exchange,提问作者Adilla Rhiskani
相关产品推荐
相关产品推荐

