ai didi

python - 如何使用连接和正则表达式?

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:48 24 4
gpt4 key购买 nike

我正在尝试在引号 (") 和空格后添加\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

Demo1

如果您注意到,第一行的行尾有一个额外的空格,如果您不希望那里有那个空格,您可以从那些捕获括号中取出那个空格并使用这个正则表达式,

(\w") 
^ space here

Demo2

这是一个示例 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"

关于python - 如何使用连接和正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377209/

24 4 0
文章推荐: python - 程序给出给定字符串中所有潜在替换的列表,需要过滤掉不按字母顺序排列的子字符串
文章推荐: android - 使用 Android NDK 构建 VPNC
文章推荐: linux - 以太网驱动程序无法在 linaro 版本 3.1 上运行
文章推荐: python - 过滤值的访问索引
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com