Python:使用正则表达式从字符串中删除字符

2024-10-01 00:19:23 发布

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

整个文件由如下行组成。在

\"ansText\" : \"11\",
\"boundsX\" : 0,
\"string\" : \"11\"

对于任何以title开头的行,我想从后面的字符串中删除字符;。以下是预期输出的示例

输入:

^{pr2}$

输出:

\"title\" : \"244442424268391(:)7)$(.:$?3.&!&3$83767:2\",

我知道如何设置正则表达式来查找表达式标题,方法是使用:

 str0 = re.sub(r'\"title.*',"\"title\" : ",str0) 

但我不太确定如何才能保留原始字符串而只删除一个字符。在


Tags: 文件方法字符串re标题示例stringtitle
2条回答

您可以使用类似这样的东西:(\\"title\\" : \\".+?);(.+?\\")(示例here),并将字符串替换为regex组编号1和2。此表达式将查找其中包含\"title\";字符的字符串,并使用此信息创建两个正则表达式组,给定\"title\" : \"244442424268391(:)7)$(.:$?3.&!&3$83;767:2\",,输出将是:

Group 1: \"title\" : \"244442424268391(:)7)$(.:$?3.&!&3$83
Group 2: 767:2\"

当你把这两个字符串组合起来,你就会得到你想要的结果。在

^{pr2}$

您可以简单地使用^{}和{a2}而不使用RegEx,如下所示:

>>> str0 = r'\"title\" : \"244442424268391(:)7)$(.:$?3.&!&3$83;767:2\",'
>>> str0 = str0.replace(';', '') if str0.startswith(r'\"title\" : ') else str0
>>> str0
'\\"title\\" : \\"244442424268391(:)7)$(.:$?3.&!&3$83767:2\\",'

相关问题 更多 >