首页 > 解决方案 > 在包含字母数字字符的字符串中添加括号

问题描述

我有一些数据,例如:

Installation start:Mon Sep 13 2021, 7:30:26 AM
Installation completed:Mon Sep 13 2021, 8:03:13 AM
Result code OK
00000000000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN00NNNNNNNNN00NN0NN00NNNNNNNNNNNNNNN
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 7:18 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake0.0
Target:meloncake.0
Download start:Mon Sep 13 2021, 7:07:34 AM
Download completed:Mon Sep 13 2021, 7:07:41 AM
Installation start:Mon Sep 13 2021, 7:09:29 AM
Installation completed:Mon Sep 13 2021, 7:18:46 AM
Result code OK
Post flash seq failed | Generate maintainer threads failed | : [9A00NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDDDDAZNNNNNNNNNNNN0NN00NAANN0NNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 6:57 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake.0
Target:meloncake1.0
Download start:Mon Sep 13 2021, 6:37:17 AM
Download completed:Mon Sep 13 2021, 6:37:23 AM
Installation start:Mon Sep 13 2021, 6:37:45 AM
Installation completed:Mon Sep 13 2021, 6:57:32 AM
Result code OK
Post flash seq failed | Generate maintainer threads failed | : [9A00000N000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 6:26 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake.0
Target:meloncake.0
Download start:Mon Sep 13 2021, 5:52:55 AM
Download completed:Mon Sep 13 2021, 5:53:02 AM
Installation start:Mon Sep 13 2021, 5:54:01 AM
Installation completed:Mon Sep 13 2021, 6:26:48 AM
Result code OK
00000000000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN00NNNNNNNNN00NN0NN00NNNNNNNNNNNNNNN
Result code OK
Device has been successfully installed

我想在长度为 128 个字符并出现在结果代码 OK行之后的字符串周围加上括号“[”、“]”

它有 128 个连续字符,后跟一个新行。什么可以是正则表达式来搜索并在其周围放置括号,以便输出为:

Installation start:Mon Sep 13 2021, 7:30:26 AM
Installation completed:Mon Sep 13 2021, 8:03:13 AM
Result code OK
[00000000000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN00NNNNNNNNN00NN0NN00NNNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 7:18 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake0.0
Target:meloncake.0
Download start:Mon Sep 13 2021, 7:07:34 AM
Download completed:Mon Sep 13 2021, 7:07:41 AM
Installation start:Mon Sep 13 2021, 7:09:29 AM
Installation completed:Mon Sep 13 2021, 7:18:46 AM
Result code OK
Post flash seq failed | Generate maintainer threads failed | : [9A00NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDDDDAZNNNNNNNNNNNN0NN00NAANN0NNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 6:57 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake.0
Target:meloncake1.0
Download start:Mon Sep 13 2021, 6:37:17 AM
Download completed:Mon Sep 13 2021, 6:37:23 AM
Installation start:Mon Sep 13 2021, 6:37:45 AM
Installation completed:Mon Sep 13 2021, 6:57:32 AM
Result code OK
Post flash seq failed | Generate maintainer threads failed | : [9A00000N000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed
Single-device update
Received at:Mon Sep 13 2021, 6:26 AM
Control unit type:secondary_ecus
Control unit identifier:meloncake.0
Target:meloncake.0
Download start:Mon Sep 13 2021, 5:52:55 AM
Download completed:Mon Sep 13 2021, 5:53:02 AM
Installation start:Mon Sep 13 2021, 5:54:01 AM
Installation completed:Mon Sep 13 2021, 6:26:48 AM
Result code OK
[00000000000N0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN00NNNNNNNNN00NN0NN00NNNNNNNNNNNNNNN]
Result code OK
Device has been successfully installed

到目前为止的代码:

import re

with open('results.txt') as infile:
    for line in infile:
        m = re.search(r'', line)

我是正则表达式的新手,所以我想知道如何搜索一个由 128 个连续字符组成的字符串,后跟换行符,并且只在整个数据集中更改这些字符串。

任何帮助深表感谢!

标签: pythonpython-3.xetl

解决方案


您的搜索需要牢记一些注意事项,例如换行代码\n。除了在上一行中对“结果代码 OK\n”进行条件检查外,我还能够正确命中此搜索。

re.search(r'(\S{126})\n',line)

这将搜索任何长度为 126 个字符的非空格字符序列,后跟换行符\n


推荐阅读