简介
我有一个数据集,比如数组,字符串,如下所示:
data = [
'Lorem ipsum {{keyword}} sit amet',
'Consectetur adipiscing {{different}} elit',
'Pellentesque vel {{another}}^option^ placerat nibh {{yetAnother}}',
...
]
我的应用程序使用这些字符串,并根据情况用其他内容替换关键字{{...}}。
我有Mocha测试来检查关键字是否正确,测试会根据字典检查它们'。 这是在简单的RegExp的帮助下完成的。容易。
问题
现在,我有问题,我不知道如何处理它:我想测试是否没有这样的拼写错误:
{{keyword}
或{keyword}}
或{{kyword^option^
或任何其他组合......在这种情况下,我的RegExp无能为力。
什么是最有效和易于维护的方法(定义关键字的边界可能会在未来发生变化,或者我可能需要添加一些选项)?
更多信息
这种测试的原因是,如果错误发生在"声明" (例如缺少大括号)应用程序不会将其识别为占位符并且不会采取行动。它不会失败或记录错误,它只会将其视为普通文本,因此及早发现它是非常重要的。
由于此数据是应用程序的重要组成部分,并且是手动生成的,并且有数百个,因此可能(并且将会)发生拼写错误,因此测试它是有意义的。
到目前为止......
答案 0 :(得分:0)
这个问题的一部分可以通过修复不匹配的大括号来解决。我最初写这个正则表达式是对类似问题的回答:
[\{]+([^}]+)[}]+
您只需将匹配替换为{{$1}}
。
只要在比赛中连续出现{
和}
中的一个或多个,就会有效。
我建议在问题的其余部分(涉及字典)中使用除正则表达式之外的其他内容。即使是执行该类任务的基本正则表达也不值得,因为相同数量的功能对于常规字符串操作更容易。