Python使用正则表达式替换字符串的特殊组

2024-09-27 21:33:24 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我的项目运行在.NETC#上,框架版本为4.5.0。它还集成使用IronPython执行一些python脚本。 现在我正在寻找用其他字符串替换字符串中的一些特殊文本

PV1|1|??|??^^^??^^^??|||||??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??|??^??^??^??^^??^^^?? ??~??^??^??^??^^??^^^?~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^?? ??^^??^^^??~??^??^??^??^^??^^^??^??^^??^^^??^??^^??^^^??^^^??^^^??^??^^^??^^^???^??^^^??^??^^^??^^^??^^??^^^??^??^^??^^^??^^^??^^??^^^??|??||||||??^^^.^^^|??||??|||||||||||||||||||??||??|||??||||||

ORC|??||??||||||??|^??^^^??^^^^??

OBR|1|??^??|??^??|??^^^* ??|||??|??||||||||||||||??||??|??|||||||??|

ZDS|??|^TEST^ONLY (TESTONLY)^^^TEST SUPPORT^^^^TEST|??|COMPLETED

OBX|1|??|??^??

从上面的文本中,我想用OBX 1替换ZDS的行??ZDS中的剩余字符串将添加到OBX中。还希望保留文本中是否有任何OBX字符串作为原始OBX

我试过下面的铁蟒

import re

regEx = re.compile('^ZDS\|([^|]+)\|([^|]+)\|([^|]+)\|([^|\n\r ]+)')
Message = regEx.sub('OBX|1|FT|||\1~\2~\3~\4|||', Message)

Message = re.sub(r'^ZDS\|([^|]+)\|([^|]+)\|([^|]+)\|([^|\n\r ]+)', 'OBX|1|FT|||\1~\2~\3~\4|||', Message, count=1)

Message= str.replace(Message, '^ZDS\|([^|]+)\|([^|]+)\|([^|]+)\|([^|\n\r ]+)','OBX|1|FT|||\1~\2~\3~\4|||')

但上述所有选择都没有奏效

我想要像这样的输出

PV1|1|??|??^^^??^^^??|||||??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??|??^??^??^??^^??^^^?? ??~??^??^??^??^^??^^^?~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^?? ??^^??^^^??~??^??^??^??^^??^^^??^??^^??^^^??^??^^??^^^??^^^??^^^??^??^^^??^^^???^??^^^??^??^^^??^^^??^^??^^^??^??^^??^^^??^^^??^^??^^^??|??||||||??^^^.^^^|??||??|||||||||||||||||||??||??|||??||||||

ORC|??||??||||||??|^??^^^??^^^^??

OBR|1|??^??|??^??|??^^^* ??|||??|??||||||||||||||??||??|??|||||||??|

OBX|1|FT|||^TEST^ONLY (TESTONLY)^^^TEST SUPPORT^^^^TEST~??~COMPLETED

OBX|1|??|??^??


Tags: 字符串test文本resupportmessageonlyft
1条回答
网友
1楼 · 发布于 2024-09-27 21:33:24

我终于找到了自己问题的答案 原文是 消息=

PV1|1|??|??^^^??^^^??|||||??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??|??^??^??^??^^??^^^?? ??~??^??^??^??^^??^^^?~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^??^^??^^^??~??^??^??^?? ??^^??^^^??~??^??^??^??^^??^^^??^??^^??^^^??^??^^??^^^??^^^??^^^??^??^^^??^^^???^??^^^??^??^^^??^^^??^^??^^^??^??^^??^^^??^^^??^^??^^^??|??||||||??^^^.^^^|??||??|||||||||||||||||||??||??|||??||||||

ORC|??||??||||||??|^??^^^??^^^^??

OBR|1|??^??|??^??|??^^^* ??|||??|??||||||||||||||??||??|??|||||||??|

OBX|1|FT|||^TEST^ONLY (TESTONLY)^^^TEST SUPPORT^^^^TEST~??~COMPLETED

OBX|1|??|??^??

在Python中

import re

Message = re.sub(r'ZDS\|([^|]+)\|([^|]+)\|([^|]+)\|([^|\n\r ]+)', 'OBX|1|FT|||'+r'\1~\2~\3~\4|||', Message, count=1)
Message = re.sub(r'ZDS\|([^|]+)\|([^|]+)\|([^|]+)\|([^|\n\r ]+)', 'OBX|1|FT|||$1~$2~$3~$4|||', Message, count=1)

相关问题 更多 >

    热门问题