这是我的问题:在一个包含逗号的文本变量中,我尝试只删除位于两个字符串之间的逗号(实际上是 [
和 ]
) .例如使用以下字符串:
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
,但我不能对它的一部分使用它。
这个网站上有一些主题,但我没有设法利用它们来解决我自己的问题,例如:
最佳答案
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)
的意思是:找到变量var
中所有符合"re的子串"
;使用函数 fun
处理它们;返回结果;结果将保存到 var1
变量中。
正则表达式“[[^]]*]”的意思是:查找以[
(\[
in re)开头的子串,包含除以外的所有内容]
([^]]*
in re)并以 ]
(\]
in re)结尾。
对于每一个发现的事件运行一个函数,将这个事件转换成新的东西。 函数是:
lambda x: group(0).replace(',', '')
这意味着:取找到的字符串 (group(0)
),将 ','
替换为 ''
(删除 >,
换句话说)并返回结果。
关于python - 替换位于之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096720/