You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何使用RegEx删除字符串中不包含字母的行

解决代码

import re

string = '''हिरासत में ली गई महिला 36 वर्षीय नूर सजात कमरुज़्ज़मा थीं
          British High Commissioner Greets
          
          पत्ता आंबेडकर चौक, निमशीरगाव,
          निमिशरगाव, निरमशिरगाव, कोल्हापूर, NIMSHIRGAON, Nimshirgaon,
          Address: ambedkar chowk,
          महाराष्ट्र, 416101
          Nimshirgaon, Kolhapur, Maharashtra,
          416101
          1832
          1947'''

filtered_lines = []
for line in string.splitlines():
    stripped = line.strip()
    # 过滤空行
    if not stripped:
        continue
    # 过滤含非ASCII字符的行,且行内至少包含一个字母或数字
    if all(ord(c) < 128 for c in stripped) and re.search(r'[a-zA-Z0-9]', stripped):
        filtered_lines.append(line)

output = '\n'.join(filtered_lines)
print(output)

逻辑说明

  • 用splitlines()拆分原始字符串为独立行,适配不同系统的换行符格式
  • 优先过滤空行,减少后续无效判断
  • 通过ord(c) < 128判断字符是否属于ASCII范围,自动过滤包含天城文等非目标语种字符的行
  • 正则[a-zA-Z0-9]确保保留的行至少包含一个拉丁字母或阿拉伯数字,避免全为标点、空格的无效行被误保留
  • 如果不需要保留原始行的前置缩进,将append(line)改为append(stripped)即可

内容的提问来源于stack exchange,提问作者BhuriStray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:36:04