如何用正则表达式移除固定前缀加可变数字的冗余文本行
正则表达式移除指定冗余行并整理为数组
需求场景
你有一段包含冗余行的文本,需要移除格式固定的冗余行,再将剩余内容整理成数组。示例文本如下:
Targeting Segment 12345 Platform XXX Audience ID: 23846552432410014 Targeting Segment 93823
需要移除的是开头为Platform XXX Audience ID: 、后续跟任意长度数字的整行内容。
解决方案
1. 匹配冗余行的正则表达式
使用以下正则匹配目标冗余行(含换行符):
^Platform XXX Audience ID: \d+\r?\n
各部分含义:
^:匹配每一行的开头(需开启多行模式)Platform XXX Audience ID::固定匹配目标文本\d+:匹配1个及以上任意数字,覆盖数字长度不固定的情况\r?\n:匹配Windows或Unix格式的换行符,确保移除整行及换行- 多行模式标记:JavaScript用
gm,Python用re.MULTILINE,让^和$作用于每一行
2. 替换并整理为数组
以下是不同语言的实现示例:
JavaScript 实现
const originalText = `Targeting Segment 12345 Platform XXX Audience ID: 23846552432410014 Targeting Segment 93823`; // 移除冗余行 const cleanedText = originalText.replace(/^Platform XXX Audience ID: \d+\r?\n/gm, ''); // 过滤空行并转为数组 const resultArray = cleanedText.split('\n').filter(line => line.trim()); console.log(resultArray); // 输出: ["Targeting Segment 12345", "Targeting Segment 93823"]
Python 实现
import re original_text = """Targeting Segment 12345 Platform XXX Audience ID: 23846552432410014 Targeting Segment 93823""" # 移除冗余行 cleaned_text = re.sub(r'^Platform XXX Audience ID: \d+\r?\n', '', original_text, flags=re.MULTILINE) # 过滤空行并转为数组 result_array = [line for line in cleaned_text.splitlines() if line.strip()] print(result_array) # 输出: ['Targeting Segment 12345', 'Targeting Segment 93823']
内容的提问来源于stack exchange,提问作者MStu
相关产品推荐
相关产品推荐

