使用R stringr包拆分字符串:提取前n-1个大写字母及剩余内容
拆分数据列:从
HAVE列提取WANT1和WANT2 示例数据与预期结果
原始列HAVE需拆分为两列,具体示例如下:
HAVE WANT1 WANT2 CLStephen Five CL Stephen Five RTQQuent Lou X RTQ Quent Lou X
拆分规则
WANT1:提取字符串开头所有连续的大写字母(即第一个非大写字母出现前的全部大写字符)WANT2:提取剩余的所有字符(自动去除开头多余空格)
实现方案
Python Pandas 处理
用正则表达式的extract方法直接拆分:
import pandas as pd # 构造示例数据 data = {'HAVE': ['CLStephen Five', 'RTQQuent Lou X']} df = pd.DataFrame(data) # 正则拆分并清理空格 df[['WANT1', 'WANT2']] = df['HAVE'].str.extract(r'^([A-Z]+)\s?(.*)$') print(df)
运行后输出:
HAVE WANT1 WANT2 0 CLStephen Five CL Stephen Five 1 RTQQuent Lou X RTQ Quent Lou X
SQL(MySQL)处理
利用正则函数完成提取:
SELECT HAVE, REGEXP_SUBSTR(HAVE, '^[A-Z]+') AS WANT1, TRIM(REGEXP_REPLACE(HAVE, '^[A-Z]+', '')) AS WANT2 FROM your_table_name;
内容的提问来源于stack exchange,提问作者bvowe
相关产品推荐
相关产品推荐

