替换位于之间的字符串
这是我的问题:在一个文本且包含逗号的变量中,我尝试仅删除位于两个字符串(实际上是[
和]
)之间的逗号。例如,使用以下字符串:
input = "The sun shines, that's fine [not, for, everyone] and if it rains, it Will Be better."
output = "The sun shines, that's fine [not for everyone] and if it rains, it Will Be better."
我知道如何使用.replace
整个变量,但是我不能在其中使用它。这个站点上有一些主题,但是我没有针对自己的问题来利用它们,例如:
- 重复提取文本文件Python中两个定界符之间的行
-
import re
Variable = “The sun shines, that’s fine [not, for, everyone] and if it rains, it Will Be better.”
Variable1 = re.sub(“[[^]]*]“, lambda x:x.group(0).replace(‘,’,’‘), Variable)首先,您需要找到字符串中需要重写的部分(可以使用进行此操作
re.sub
)。然后,您重写那些部分。该函数的
var1 = re.sub("re", fun, var)
意思是:在te变量var
中找到符合"re"
;的所有子字符串。用函数处理它们fun
; 返回结果;结果将保存到var1
变量中。正则表达式“ [[^]] *]”的意思是:查找以
[
(开头\[
),包含]
(以外[^]]*
)和以]
(结尾)结束的所有子串\]
。对于每个发现的事件,运行一个将该事件转换为新事件的函数。该函数是:
lambda x: group(0).replace(',', '')
这意味着:采用找到(
group(0)
)的字符串,替换','
为''
(,
换句话说,删除)并返回结果。