Python基础知识-切分一个长字符串并将切分的片段组合在一起

2024-09-29 21:24:25 发布

您现在位置:Python中文网/ 问答频道 /正文

环境:Win 7;Python 2.76

大家好…我需要从一个字符串中提取一些文本,如下所示:

“C-60345256CC气缸:2个水平对开孔:1-1/4行程:1-1/8长度:单一版本ticalBore:1-111高度:6宽度:K-720:空气重量:6LBS1.5H.P.@54500RPMC-60150CC汽油机气缸:4垂直N线孔:1行程:1循环:4重量:6-1/2LBS长度:10宽度●气长16冷却:空气长度:5宽:4L-233高:6重量:4黑骑士C-609蒸汽机ngineBore:11/16冲程:11/16长:3宽:3高度:4挑战RC-600孔:1行程:1P-305Weight:18LBS长度:12宽度:7高度:8C-60615CC汽油机J-142气缸:单一版本ticalBore:1冲程:1-1/8冷却:1冲程:1-1/4HP::/4行程:1-7/:6宽:6高:9重量:4LBS1.75H.P.@65200RPM““

通缉犯是:

一、1个字母+3个数字的组合,以“-”连接。如:C-603、K-720、C-606等

二。5个连续数的组合。例如:45256、54500、60150、65200等

我的想法是:

  1. 将字符串切分为每段,如“C”、“C”、“6”、“0”、“3”、“R”、“P”、“M”
  2. 将它们组合成4位数和5位数,如“C-60”、“-603”、“603W”…和“C-603W”、“-603W”、“603Wa”
  3. 挑选符合标准I和II的

听起来像个办法?如果是,我可以在流程中使用什么命令? 谢谢。你知道吗


Tags: 字符串文本版本宽度高度环境win空气
1条回答
网友
1楼 · 发布于 2024-09-29 21:24:25

使用regular expressions是一种方法:

>>> data = '''C-603WallWizard45256CCCylinders:2HorizontalOpposedBore:1-1/4Stroke:1-1/8Length: SingleVerticalBore:1-111Height:6Width:K-720Cooling:AirWeight:6LBS1.5H.P.@54500RPMC-60150ccGasEngineCylinder:4VerticalInlineBore:1Stroke:1Cycle:4Weight:6-1/2LBSLength:10Width: :AirLength16Cooling:AirLength:5Width:4L-233Height:6Weight: 4TheBlackKnightc-609SteamEngineBore:11/16Stroke:11/16Length:3Width:3Height:4TheChallengerC-600Bore:1Stroke:1P-305Weight:18LBSLength:12Width:7Height:8C-606Wall15ccGasEngineJ-142Cylinder:SingleVerticalBore:1Stroke:1-1/8Cooling:1Stroke:1-1/4HP:: /4Stroke:1-7/:6Width:6Height:9Weight:4LBS1.75H.P.@65200RPM'''

>>> one_letter_three_numbers = re.compile(r'.\-\d{3}', re.IGNORECASE)
>>> re.findall(one_letter_three_numbers, data)
['C-603', '1-111', 'K-720', 'C-601', 'L-233', 'c-609', 'C-600', 'P-305', 'C-606', 'J-142']

>>> five_continuous = re.compile(r'\d{5}', re.IGNORECASE)
>>> re.findall(five_continuous, data)
['45256', '54500', '60150', '65200']

相关问题 更多 >

    热门问题