Python中如何分割字符串?

我有这样一行文字

1#   000655   金岭矿业  9:25  17 中报 股+涨价 -钢铁 +国企改革  17 半年报预增 137%至 158%+铁矿石 (资源)+实际控制人山东省国资委 持有 58.41%+主业包含对钴金属的生产销售  1

我想要能够提取成

000655    17 中报 股+涨价 -钢铁 +国企改革  17 半年报预增 137%至 158%+铁矿石 (资源)+实际控制人山东省国资委 持有 58.41%+主业包含对钴金属的生产销售

Python中如何分割字符串?

8 回复

python split 函数,然后再字符串拼接就行


在Python里分割字符串最常用的就是str.split()方法。默认按任意空白字符(空格、换行、制表符等)分割,返回一个列表。

# 基本用法
text = "hello world python"
result = text.split()
print(result)  # 输出: ['hello', 'world', 'python']

# 指定分隔符
csv_data = "apple,banana,orange"
result = csv_data.split(',')
print(result)  # 输出: ['apple', 'banana', 'orange']

# 限制分割次数
text = "one:two:three:four"
result = text.split(':', 2)  # 只分割前两次
print(result)  # 输出: ['one', 'two', 'three:four']

如果需要更灵活的模式匹配,可以用re.split()

import re

# 按多个分隔符分割
text = "apple, banana; orange|melon"
result = re.split(r'[,;|]\s*', text)
print(result)  # 输出: ['apple', 'banana', 'orange', 'melon']

还有str.partition()str.rpartition()用于将字符串分成三部分(分隔符前、分隔符、分隔符后):

text = "key=value"
left, sep, right = text.partition('=')
print(left, right)  # 输出: key value

总结:根据需求选split()re.split()partition()

这是股市新闻?
“ 1#” 如果在开头有规律的话应该是好去除的
“ 00065 ” 是股票代码吧,与“金陵矿业”这类的有对应关系,利用开放的 API 或者数据库应该可以查到这个对应关系,然后提取删除就行了。
9:25 是时间,利用正则提取删除。

s = '000655 金岭矿业 9:25 17 中报 股+涨价 -钢铁 +国企改革 17 半年报预增 137%至 158%+铁矿石 (资源)+实际控制人山东省国资委 持有 58.41%+主业包含对钴金属的生产销售’
l = s.split()

name = l[1]
time = l[2]

name_length = len(name)
time_length = len(time)

name_start_index = s.find(name)
time_start_index = s.find(time)
time_end_index = time_start_index + time_length - 1

p1 = s[:name_start_index]
p2 = s[time_end_index + 1:]

print(p1 + p2)

为啥我首先想到的是 awk

非常感谢

我首先想到的是这是个伸手党。。

我是初学者,如果打扰各位,很抱歉,下次不这样了

回到顶部