如何删除字符串中不包含指定单词:tesTWORD:的所有行?
解决方案:保留包含精确
:tesTWORD:的行 以下是几种不同场景下的实现方式,均能精准保留包含:tesTWORD:子串的行,剔除其他行:
Python 实现
将原字符串按行拆分,过滤出包含目标子串的行后重新拼接:
original_str = '''"111"1"13648"" PA4123:tesTWORD:a6b4ba21ba54f6bde411930bd864b700""""" "101"1"00000368"" PA1239:tesTWORD:a6b4ba21ba54f6bde411930b0001cb9d""" PA0545:tesTWOR:b598944d1ba4c787e411800b8043559c"" "" PA1238:tesTWORD:a6b4ba21ba54f6bde411920b6ba5f90b PA0545:tesWOR:b598944d1ba4c787e411800b8043559c"" 3646475''' # 分割行 → 过滤目标行 → 拼接结果 filtered_lines = [line for line in original_str.splitlines() if ':tesTWORD:' in line] result = '\n'.join(filtered_lines) print(result)
Shell 环境实现
使用grep命令直接匹配目标子串,适用于处理文件或字符串变量:
- 处理文件(假设文件名为
input.txt):
grep ':tesTWORD:' input.txt
- 处理字符串变量:
original_str='"111"1"13648"" PA4123:tesTWORD:a6b4ba21ba54f6bde411930bd864b700""""" "101"1"00000368"" PA1239:tesTWORD:a6b4ba21ba54f6bde411930b0001cb9d""" PA0545:tesTWOR:b598944d1ba4c787e411800b8043559c"" "" PA1238:tesTWORD:a6b4ba21ba54f6bde411920b6ba5f90b PA0545:tesWOR:b598944d1ba4c787e411800b8043559c"" 3646475' echo "$original_str" | grep ':tesTWORD:'
JavaScript 实现
通过拆分字符串、过滤行、重新拼接完成处理:
const originalStr = `"111"1"13648"" PA4123:tesTWORD:a6b4ba21ba54f6bde411930bd864b700""""" "101"1"00000368"" PA1239:tesTWORD:a6b4ba21ba54f6bde411930b0001cb9d""" PA0545:tesTWOR:b598944d1ba4c787e411800b8043559c"" "" PA1238:tesTWORD:a6b4ba21ba54f6bde411920b6ba5f90b PA0545:tesWOR:b598944d1ba4c787e411800b8043559c"" 3646475`; const filteredLines = originalStr.split('\n').filter(line => line.includes(':tesTWORD:')); const result = filteredLines.join('\n'); console.log(result);
内容的提问来源于stack exchange,提问作者user20432127
相关产品推荐
相关产品推荐

