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

如何编写正则表达式忽略制表符、空行及空格以分割文件内容?

解决方案

核心思路

分两步处理文本:

  • 过滤空行:跳过所有仅包含空格、制表符或无实际内容的行;
  • 提取有效元素:从非空行中提取所有数字序列(含前导零)和运算符(*、+、^),自动忽略所有空白字符(空格、制表符)。

关键正则表达式

  1. 匹配空行(用于过滤):

    ^\s*$
    
    • ^ 和 $ 锁定行的开头与结尾;
    • \s* 匹配任意数量的空白字符(空格、制表符、换行符),整行匹配则判定为需要忽略的空行。
  2. 提取有效元素(用于分割每行内容):

    \d+|[*+^]
    
    • \d+ 匹配一个或多个连续数字(支持带前导零的数字,比如01119111);
    • | 表示逻辑或;
    • [*+^] 匹配单个目标运算符。

示例代码(Python)

以下是基于Python的实现示例,展示逐行处理文件的流程:

import re

# 预编译正则表达式
empty_line_re = re.compile(r'^\s*$')
element_re = re.compile(r'\d+|[*+^]')

# 读取并处理文件
with open('target_file.txt', 'r') as file:
    for line in file:
        # 跳过空行
        if empty_line_re.match(line):
            continue
        # 提取当前行的所有有效元素
        valid_elements = element_re.findall(line)
        print(valid_elements)

处理效果示例

以你提供的第一行内容为例:

99999999 990001 * 01119111 55565    33333 + * +  88888888              +

处理后会得到列表:
['99999999', '990001', '*', '01119111', '55565', '33333', '+', '*', '+', '88888888', '+']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:35:20