在以下字符串被解析的情况下.
ford mustang,10,blue~~?bugatti veyron,13,black
Run Code Online (Sandbox Code Playgroud)
我想~~?用一个替换carriage return
替换\n只是添加字符串"\n"
如何才能做到这一点?
我试图在Python中使用正则表达式来查找和打印多行搜索中的所有匹配行.我正在搜索的文本可能具有以下示例结构:
AAA ABC1 ABC2 ABC3 AAA ABC1 ABC2 ABC3 ABC4 ABC AAA ABC1 AAA
从中我想要检索至少出现一次并且前面有AAA的ABC*.
问题是,尽管该团体抓住了我想要的东西:
match = <_sre.SRE_Match object; span=(19, 38), match='AAA\nABC2\nABC3\nABC4\n'>
Run Code Online (Sandbox Code Playgroud)
...我只能访问该组的最后一场比赛:
match groups = ('AAA\n', 'ABC4\n')
Run Code Online (Sandbox Code Playgroud)
下面是我用于此问题的示例代码.
#! python
import sys
import re
import os
string = "AAA\nABC1\nABC2\nABC3\nAAA\nABC1\nABC2\nABC3\nABC4\nABC\nAAA\nABC1\nAAA\n"
print(string)
p_MATCHES = []
p_MATCHES.append( (re.compile('(AAA\n)(ABC[0-9]\n){1,}')) ) #
matches = re.finditer(p_MATCHES[0],string)
for match in matches:
strout = ''
gr_iter=0
print("match = "+str(match))
print("match groups = "+str(match.groups()))
for group in match.groups():
gr_iter+=1
sys.stdout.write("TEST GROUP:"+str(gr_iter)+"\t"+group) # test …Run Code Online (Sandbox Code Playgroud)