基于lin中的第一个“”和最后一个“”进行拆分

2024-04-25 09:48:07 发布

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

我有下面的脚本,基本上删除了“-”后的句子,它是打破时公告.txt包含下面的输入,因为它有多个“-”,我基本上要根据第一个“-”从最后…请分裂 建议如何做到这一点…我有预期的产出

你知道吗输入:-//components/rel/bt.wcnss/2.4/wcnssŠu proc/bt/platform/rom/inc/oiŠu sbcŠu tables-generated.hŠ1-分支更改700801(文本)

预期输出:-//components/rel/bt.wcnss/2.4/wcnssŠu proc/bt/platform/rom/inc/oiŠu sbcŠu tables-generated.hŠ1你知道吗

f = open('announce.txt', 'r')
z = f.readlines()
f.close()

k = []

for items in z:
    print 'Current item %s'%items
    answer = items.split('-');
    k.append(answer[0].strip() + '\n')

f2 = open('foobar4.txt', 'w')
f2.writelines(k)
f2.close()

Tags: txttablesromcomponentsitemsprocgeneratedinc
3条回答

一个贪婪的RegExp怎么样:

import re
original_string = u'//components/rel/bt.wcnss/2.4/wcnss_proc/bt/platform/rom/inc/oi_sbc_tables-generated.h#1 - branch change 700801 (text)'
match = re.match(r'(.*)-', original_string).groups()
if match:
    new_string = match.groups()[0]

^{}是你的朋友。你知道吗

>>> input = '- //components/rel/bt.wcnss/2.4/wcnss_proc/bt/platform/rom/inc/oi_sbc_tables-generated.h#1 - branch change 700801 (text)'
>>> output = input[:input.rfind('-')]
>>> print output
- //components/rel/bt.wcnss/2.4/wcnss_proc/bt/platform/rom/inc/oi_sbc_tables-generated.h#1 

已知错误:

  • 如果你没有这个“注释字符串”,它会很高兴地切掉其他地方(例如在tables-generated
  • 如果您的字符串没有破折号,它将把输入截断1个字符(切片将是input[:-1]

rsplit

"a-b-c-d".rsplit('-',1)

>>> ['a-b-c', 'd']

-

items = '- //components/rel/bt.wcnss/2.4/wcnss_proc/bt/platform/rom/inc/oi_sbc_tables-generated.h#1 - branch change 700801 (text)'
answer = items.rsplit('-',1);
k.append(answer[0].strip() + '\n')
# print answer[0].strip()

相关问题 更多 >