当前位置:首页>python>Python对文本中的数字和字符进行提取

Python对文本中的数字和字符进行提取

  • 2026-09-11 11:34:01
Python对文本中的数字和字符进行提取
读者的一个问题:将表格A列中的数据按G:K列的对应的名称进行提取,如下图:
一般遇到这种问题都需要用正则表达式来解决,高版本的Excel可以直接写,但是需要对应写四个公式,数据多了需要下拉,用Python写能将所有功能写到一个脚本里,直接出结果,下面看下主要步骤:
1、读取源数据
本次使用openxl库进行数据读写,这个库是除Pandas之外,另一个可以快速对数据进行清洗的库,且不受列名限制,直接在指定的行、列中读写数据:

import re #调用re

import openpyxl #调用 openpyxl

# ── 读取原始工作簿(保留格式) ──

wb = openpyxl.load_workbook('D:/素材/提取数字/项目明细.xlsx')

ws = wb.active

2、使用正则表达式提取需要的信息

首先看下正则表达式样的规则:

元字符\元字符序列
说明
.
英文小数点,除了换行符以外的所有字符
\d
任意一个英文数字数字(0-9)
\w
匹配任意英文字母、数字或下划线(a-zA-Z0-9)
\s
任意不可见字符(包括空格 换行 回车 换页等)
\W
\w的取反
\D
\d的取反
\S
\s的取反

如果要提取文本后面的数字+“\”符号,可以这样写表达式:\d+(?:/\d+

而用Python处理文本,需要用到re库,所以找到4个项目对应的文本加提取指定的数字和字符可以按如下的方式写:

3、写入提取的数据并保存

openpyxl库写入数据的方式有点像VBA,指定开始写入的行数和列数,开始循环写入数据:

# ── 遍历数据行(跳过表头第1行),提取并写入 G~K 列 ──

# G=7, H=8, I=9, J=10, K=11

col_map = {7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K'}

extracted_count = 0

for row in range(2, ws.max_row + 1):  # 从第2行开始(第1行是表头)

    cell_a = ws.cell(row=row, column=1)  # A列 = 项目特征描述

    text = cell_a.value

....

整体的代码如下:

看下整体的处理效果:

已关注
关注
重播 分享 赞

所需的文本被完整的提取出来,本篇核心:正则表达式的提取方式,有了这个思路,无论是公式、VBA还是Python都可以把需要的文本快速提取出来。

最新文章

随机文章