我试图从txt文件中动态读取正则表达式匹配规则和替换规则,并将其作为参数发送到re.sub函数
我的输入是"PERSONALDETAILS TESTY MCTESTER 123 TEST DRIVE..."
-我需要替换的数据长度是常量(100)
我的输出应该是"PERSONALDETAILS *****************************..."
我拥有的示例文件如下:
"rules":
{
"(?<=PERSONALDETAILS).{1,100}": "####################################################################################################"
}
我上面的替换值硬编码为100个字符。有没有一种不使用lambda函数的优雅方法
这就是你想做的吗?如果是这样,您可能不需要正则表达式
其输出将为:
原始文件:
修改文件:
您可以保存规则并将其作为json数据类型读取
保留你的规则
将占位符设置为规则的目标长度,而不是硬编码的n个字符。您可以使用{}和.format()属性来完成此项工作,如下所示:
(?<=PERSONALDETAILS).{{{start}, {end}}}
将规则另存为json文件
将规则作为json文件读取
迭代规则(键和值)并替换它们的值
试试这个:
从json文件读取规则:
完整代码:
对这个问题的一些赞扬how to get around "Single '}' encountered in format string" when using .format and formatting in printing和@fred-fro
相关问题 更多 >
编程相关推荐