如何基于换行符\n拆分字符串列表并提取指定位置内容
实现方案
核心逻辑
- 把原始字符串按换行符
\n拆分后过滤空行,得到所有非空内容行 - 首行截取冒号前的日期字段即可得到第一条结果
- 跳过第二行的标题说明、最后一行的机构备注,中间所有行都是各州的病例数据
- 按序号给结果加前缀格式化输出即可
代码实现(Python)
# 原始输入字符串 raw_content = """Sehingga 8 Ogos 2021: Jumlah kes COVID-19 yang dilaporkan adalah 18,688 kes (1,262,540 kes) Pecahan setiap negeri (Kumulatif): Selangor - 6,565 (465,015) WPKL - 1,883 (140,404) Johor - 1,308 (100,452) Sabah -Lagi 1,379 (93,835) Sarawak - 581 (81,328) Negeri Sembilan - 1,140 (78,777) Kedah - 1,610 (56,598) Pulau Pinang - 694 (52,368) Kelantan - 870 (49,433) Perak - 861 (43,924) Melaka - 526 (35,584) Pahang - 602 (29,125) Terengganu - 598 (20,696) WP Labuan - 2 (9,711) WP Putrajaya - 63 (4,478) Perlis - 6 (812) - KPK KKM""" # 拆分+过滤空行 all_lines = [line.strip() for line in raw_content.split("\n") if line.strip()] target_list = [] # 提取日期 target_list.append(all_lines[0].split(":", 1)[0]) # 提取各州数据,跳过标题和末尾备注 target_list.extend(all_lines[2:-1]) # 按要求格式化输出 for index, item in enumerate(target_list, 1): print(f"<p>{index})<code>{item}</code></p>")
输出结果
<p>1)<code>Sehingga 8 Ogos 2021</code></p> <p>2)<code>Selangor - 6,565 (465,015)</code></p> <p>3)<code>WPKL - 1,883 (140,404)</code></p> <p>4)<code>Johor - 1,308 (100,452)</code></p> <p>5)<code>Sabah -Lagi 1,379 (93,835)</code></p> <p>6)<code>Sarawak - 581 (81,328)</code></p> <p>7)<code>Negeri Sembilan - 1,140 (78,777)</code></p> <!-- 剩余州属数据按顺序依次输出 -->
内容中文翻译参考
- 截至2021年8月8日
- 雪兰莪州 - 6565例(累计465015例)
- 吉隆坡联邦直辖区 - 1883例(累计140404例)
- 柔佛州 - 1308例(累计100452例)
- 沙巴州 - 新增1379例(累计93835例)
- 砂拉越州 - 581例(累计81328例)
- 森美兰州 - 1140例(累计78777例)
内容的提问来源于stack exchange,提问作者terry555
相关产品推荐
相关产品推荐

