如何提取字符串中第一个斜杠左侧内容?无斜杠则返回原内容
提取字符串中第一个"/"左侧内容的最优实现方法
问题说明
现有样本数据:
Adjusted - Above contract rate Adjusted - Above contract rate / Amount in excess / Coinsurance Amount Adjusted - Above contract rate / Amount in excess Amount in excess
需求:提取每条数据中第一个/左侧的部分;若数据中无/,则直接返回原内容,期望输出:
Adjusted - Above contract rate Adjusted - Above contract rate Adjusted - Above contract rate Amount in excess
1. Python 实现
用字符串split方法只分割一次,逻辑简单高效:
def extract_left_part(s): # rstrip()可选,用于去除斜杠前可能存在的末尾空格 return s.split('/', 1)[0].rstrip() # 测试样本 data = [ "Adjusted - Above contract rate", "Adjusted - Above contract rate / Amount in excess / Coinsurance Amount", "Adjusted - Above contract rate / Amount in excess ", "Amount in excess" ] for item in data: print(extract_left_part(item))
原理:split('/', 1)会把字符串按第一个/分割为两部分(存在/时),取索引0的元素就是左侧内容;若没有/,split返回的列表仅含原字符串,直接取即可。
2. Excel 实现
用LEFT+FIND+IFERROR组合函数,适配所有场景:
=IFERROR(LEFT(A1, FIND("/", A1)-1), A1)
如果需要清理斜杠前的空格,可追加TRIM:
=IFERROR(TRIM(LEFT(A1, FIND("/", A1)-1)), A1)
原理:FIND定位第一个/的位置,LEFT截取左侧内容;若找不到/,FIND触发错误,IFERROR直接返回原单元格内容。
3. SQL 实现(以MySQL为例)
用SUBSTRING_INDEX函数,专门适配分隔符截取场景:
SELECT SUBSTRING_INDEX(your_column, '/', 1) AS result FROM your_table;
需清理空格时配合TRIM:
SELECT TRIM(SUBSTRING_INDEX(your_column, '/', 1)) AS result FROM your_table;
原理:SUBSTRING_INDEX(str, delim, count)中count=1表示取第一个分隔符左侧内容;无分隔符时直接返回原字符串,完全匹配需求。
4. JavaScript 实现
用split方法加trim处理空格:
function extractLeftPart(s) { // trim()用于清理前后空格,按需选择保留 return s.split('/')[0].trim(); } // 测试样本 const data = [ "Adjusted - Above contract rate", "Adjusted - Above contract rate / Amount in excess / Coinsurance Amount", "Adjusted - Above contract rate / Amount in excess ", "Amount in excess" ]; data.forEach(item => console.log(extractLeftPart(item)));
内容的提问来源于stack exchange,提问作者Brian Campbell
相关产品推荐
相关产品推荐

