用Python获取俩个字符串中公共字符 python提取两个字符串之间的

admin2024-06-11  24

商品信息如下:
s=‘商品编号:QG0001163 商品名称:LANEIGE兰芝臻白晶透细肤水 规格:’
‘色号:120ml;商品编号:QG0001164 商品名称:LANEIGE兰芝臻白晶透保湿乳 规格:重量:100ml;商品编号:’
‘QG0001165 商品名称:LANEIGE兰芝臻白晶透精华露 规格:重量:40ml;商品编号:QG0001167 商品名称:’
‘LANEIGE兰芝保湿滋养洁颜膏 规格:重量:150ml’

也可能是这样的字符串
s1=‘商品编号:QG0000200 商品名称: 雅漾’

以上是一个字符串我想要提取商品名称,所有的商品名称,
比如第一个我想要得到的字符串是:
LANEIGE兰芝臻白晶透细肤水 + LANEIGE兰芝臻白晶透保湿乳 + LANEIGE兰芝臻白晶透精华露 + LANEIGE兰芝保湿滋养洁颜膏;
第二个我想要得到的字符串是:雅漾;

那么怎么办呢,对于第一个字符串可以使用正则表达式,第二个可以使用find和一般的取列表范围的方法,直接上代码了:

import pandas as pd
import numpy as np
import re
s='商品编号:QG0001163 商品名称:LANEIGE兰芝臻白晶透细肤水 规格:' \
  '色号:120ml;商品编号:QG0001164 商品名称:LANEIGE兰芝臻白晶透保湿乳 规格:重量:100ml;商品编号:' \
  'QG0001165 商品名称:LANEIGE兰芝臻白晶透精华露 规格:重量:40ml;商品编号:QG0001167 商品名称:' \
  'LANEIGE兰芝保湿滋养洁颜膏 规格:重量:150ml'

s1='商品编号:QG0000200 商品名称: 雅漾'

# data=pd.read_excel(r'C:\Users180085\Desktop\线上商城数据分析新版.6-4.12电商平台交易1.xlsx',sheet_name='元数据')
# data=pd.read_excel(r'C:\Users180085\Desktop\线上商城数据分析新版\电商平台3.30-4.5日交易明细_1(1).xls',sheet_name='元数据')

# 商品
def fun1(s):
    # 如果有"规格"字符串,就是用正则表达式取"商品名称"和"规格"之间的字符串
    # find函数返回查找的字符串的第一个索引位置,如果查找不到就返回-1,从左开始找
    if s.find('规格')!=-1:
        pattern = re.compile('商品名称:(.*?)规格', re.S)  # 表达式为: (.*?)
        list = pattern.findall(s)
        # 找到后返回的列表,转化为以“+”相连的字符串即可
        list1 = '+ '.join(list)
        return list1

    # 如果没有"规格"字符串,先查找“名称”的索引,然后加上3,就是商品的开始字符串,直到最后
    # [a:b]选择字符串索引a,b的子字符串
    else:
        return s[s.find('名称:') + 3:]

print(fun1(s))
print(fun1(s1))

用Python获取俩个字符串中公共字符 python提取两个字符串之间的,用Python获取俩个字符串中公共字符 python提取两个字符串之间的_用Python获取俩个字符串中公共字符,第1张

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!