如何使用正则表达式拆分大小写粘连单词且不影响全大写单词
如何使用正则表达式拆分大小写粘连单词且不影响全大写单词
没问题,这个需求完全可以实现!你之前用的正则会给每个大写字母前都插空格,自然会把全大写单词拆得七零八落,咱们调整一下正则的匹配逻辑就能精准解决问题。
核心思路很简单:咱们只需要定位小写字母紧跟大写字母的那个分界点,只在这个位置插入空格,全大写单词里没有这样的“小写转大写”的组合,所以根本不会被改动。
具体到Pandas的代码,你可以把原来的apply替换成下面这段:
import re import pandas as pd # 假设你的目标列是'text_column',替换成你实际的列名即可 df['text_column'] = df['text_column'].apply(lambda x: re.sub(r"([a-z])([A-Z])", r"\1 \2", x))
给你举几个实际效果的例子:
- 原文本
exampleWord→ 处理后变成example Word - 原文本
EXAMPLE WORD→ 处理后还是EXAMPLE WORD(完全不受影响) - 原文本
HelloWorldTEST→ 处理后变成Hello WorldTEST(只有小写转大写的地方被拆分,全大写的TEST部分保持原样)
这个正则的逻辑是:用捕获组分别抓住小写字母和紧随其后的大写字母,然后把它们替换成「小写字母 + 空格 + 大写字母」,精准命中你需要拆分的粘连处,同时放过全大写的单词。
备注:内容来源于stack exchange,提问作者Boyd1878
相关产品推荐
相关产品推荐

