正则提取引号前长词首字母缩写与引号内容,适配DataFrame通用处理
正则提取引号内容与长单词首字母缩写
核心思路
通过正则拆分字符串为引号前的文本和引号内的内容两部分,再对前缀文本筛选长度大于3的单词,提取首字母拼接成大写缩写,最后按指定格式组合结果。
正则模式
使用非贪婪匹配捕获目标内容:
(.*?)"(.*?)"
(.*?):非贪婪匹配任意字符,分别捕获引号前的全部文本(第一组)和引号内的内容(第二组)":匹配HTML转义的双引号(对应原字符串中的"转义形式)
Python实现代码
import re import pandas as pd def process_string(s): # 匹配并拆分字符串 match_result = re.match(r'(.*?)"(.*?)"', s) if not match_result: return "" prefix, quoted = match_result.groups() # 生成首字母缩写:筛选长度>3的单词,取首字母大写拼接 acronym = ''.join([word[0].upper() for word in prefix.split() if len(word) > 3]) # 返回指定格式的结果 return f"{quoted}, {acronym}" # 测试单个字符串 string1 = 'Department of the Federal Treasury "IFTS No. 43"' string2 = 'Federal Treasury Company "Light-8"' print(process_string(string1)) # 输出: IFTS No. 43, DFT print(process_string(string2)) # 输出: Light-8, FTC # DataFrame批量处理示例 df = pd.DataFrame({ 'raw_text': [string1, string2, 'Small Test "Sample-45"'] }) df['processed_text'] = df['raw_text'].apply(process_string) print(df)
代码说明
- 正则匹配:确保准确拆分出前缀文本和引号内的内容,兼容字符串前后无多余字符的场景
- 缩写生成:通过列表推导式快速筛选长单词并提取首字母,自动转为大写
- 批量处理:利用Pandas的
apply方法,直接对DataFrame列进行批量转换
内容的提问来源于stack exchange,提问作者broncaeux
相关产品推荐
相关产品推荐

