我正在try 使用Python re.子模块,将下面示例中的任何false实例替换为"false,\n"

local Mission = {

    start_done = false
    game_over = false

} --End Mission

我try 过以下方法,但没有成功的替代品.我的想法是,我以锚字符串开始和结束,跳过任何不是"false"的内容,当我得到匹配时返回"false+",".任何帮助都将不胜感激!

re.sub(r'(Mission = {)(.+?)(false)(.+?)(} --End Mission)', r'\1' + ',' + '\n')

推荐答案

你可以用

re.sub(r'Mission = {.*?} --End Mission', lambda x: x.group().replace('false', 'false, \n'), text, flags=re.S)

regex demo.

Notes:

  • Mission = {.*?} --End Mission个正则表达式匹配Mission = {个字符,然后匹配任何零个或多个字符,数量为个字符,然后匹配} --End Mission个字符
  • 然后在匹配的文本中用false, \n替换false.

参见Python demo:

import re
text = 'local Mission = {\n    start_done = false\n    game_over = false\n\n} --End Mission'
rx = r'Mission = {.*?} --End Mission'
print(re.sub(rx, lambda x: x.group().replace('false', 'false, \n'), text, flags=re.S))

Python相关问答推荐

将多列拆分为多列,Pandas

Pandas - 添加新列 - 使用循环

mypy call-arg 错误,其中设置了默认参数

成对输出传递字母的函数

在python中声明文件夹路径的正确方法是什么?

错误:在 dd/mm/yyyy 的字符串格式化期间并非所有参数都转换了

Sklearn 管道转换特定列 - ValueError:要解包的值太多(预期为 2)

在 Python 中访问 Azure Key Vault 时出现意外的关键字参数“tenant_id”

如何加快应用两个二维数组的 scipy 集成?

如何进行条件合并 Pandas

如何加快 aiohttp 解析器 bs4?

pip 和命令行的问题

cupy.asnumpy() 和 get() 之间的区别

3级链式python导入失败

Python pandas:来自 get_dummies 的动态连接

从嵌套 for 循环到字典理解?

防止更新中间文件时重新运行规则

将句子拆分为列表时如何保留空格?

如何将空格替换为字符串中的随机数

如何在Pandas 中按天分组?