我正在尝试在引号 (") 和空格后添加\n。
我能找到的最接近的是 re.sub 但是它删除了某些字符。
line = 'Type: "SecurityIncident" RowID: "FB013B06-B04C-4FEB-A5A5-3B858F910F29"'
q = re.sub(r'[\d\w]" ', '\n', line)
print(q)
输出:
Type: "SecurityInciden\nRowID: "FB013B06-B04C-4FEB-A5A5-3B858F910F2\n
寻找不删除任何字符的解决方案。
请您参考如下方法:
您尝试的正则表达式 [\d\w]"几乎没问题,但有一些小缺点。你不需要写 \d与 \w在一个字符集中,它是冗余的 \w已经包含 \d在里面。自 \w单独就足以表示字母或数字或下划线,因此无需将其包含在字符集 [] 中。因此你可以写\w并且您更新的正则表达式变为 \w" .
但是现在,如果您匹配此正则表达式并将其替换为 \n它将匹配文字字母 t然后 "和一个空格,它将被替换为 \n这就是为什么你得到这个输出,
SecurityInciden\nRowID
您需要在 group1 中捕获匹配的字符串,并且在替换时,您需要在替换时使用它,这样就不会被替换,因此您应该使用 \1\n作为替换而不仅仅是 \n
试试这个更新的正则表达式,
(\w" )
并将其替换为\1\n
如果您注意到,第一行的行尾有一个额外的空格,如果您不希望那里有那个空格,您可以从那些捕获括号中取出那个空格并使用这个正则表达式,
(\w")
^ space here
这是一个示例 python 代码,
import re
line = 'Type: "SecurityIncident" RowID: "FB013B06-B04C-4FEB-A5A5-3B858F910F29"'
q = re.sub(r'(\w") ', r'\1\n', line)
print(q)
输出,
Type: "SecurityIncident"
RowID: "FB013B06-B04C-4FEB-A5A5-3B858F910F29"
