替换3行字符串

2024-06-26 14:45:26 发布

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

当调用外部API时,我得到这种响应,它是2行44个字符,总共88个。这是完美的

r.text = "P<RUSBASZNAGDCIEWS<<AZIZAS<<<<<<<<<<<<<<<<<<"
           "00000000<ORUS5911239F160828525911531023<<<10"

但有时我会得到这种响应,我需要使其与示例1中的相同。2行44个字符。 所有这些大的都应该被正常的<替换,空格也应该被删除

r.text = "P<RUSALUZAFEE<<ZUZILLAS<<<<
          くくくくくくくくくく、
          00000000<ORUS7803118 F210127747803111025<<<64"

预期产出:

string =  "P<RUSALUZAFEE<<ZUZILLAS<<<<<<<<<<<<<<<<<<<<<
          00000000<ORUS7803118F210127747803111025<<<64"

Tags: textapi示例string空格我会个字符rusaluzafee
3条回答
import re

pattern = r'\n.*く.*\n'
s = re.compile(pattern)
string = s.sub('\n', r.text)

您可以使用模块re中的re.sub执行此操作,如下所示

new_txt = re.sub("<", "く", old_txt)

或者使用str.replace,如下所示

new_str = OldStr.replace("く", "<")

或者使用正则表达式并将其与

 if pattern:
       re.sub  # or str.replace
   else:
       pass
 
     

这里是最好的尝试,你会发现它很有用

import re

txt =""" P<RUSALUZAFEE<<ZUZILLAS<<<<
    くくくくくくくくくく、
    00000000<ORUS7803118 F210127747803111025<<<64"""

txt_1 = re.sub('(く |く)', '<', txt).replace('、','')
txt_2 = re.sub(r'\s+', '', txt_1)
regex = r"(\w<?\w+<+\w+<+)(\w*<?\w+<+\w+)"
result = re.match(regex, txt_2)
print(f'{result.group(1)}\n{result.group(2)}')

输出

P<RUSALUZAFEE<<ZUZILLAS<<<<<<<<<<<<<<
00000000<ORUS7803118F210127747803111025<<<64

相关问题 更多 >