我有一些包含C++ code
的文本文件,我必须检查每个硬编码string
(static const char*
)的占位符并验证排序。
我们使用boost::format
作为占位符令牌,这些占位符基本上是'%'后跟数字(1到n),再次是'%'。
现在我需要查找不按升序排列的所有字符串。
例如:
// this is a valid string containing tokens
string valid = "this %1% \"contains\" %2% %3%";
// this is not ...
string invalid = "this %1% \"contains\" %3% %2%";
那么,是否可以使用RegExp
找到它?
修改:
所以我的regexp
应该找到包含标记的所有文本,并且知道如何验证排序。
是否有更优雅的方式来撰写regexp
而不是"((([^"]|\\")*)?%\d%)+([^"]|\\")*"
? (它可以根据在线测试人员的工作,但也许有一种方法可以提高我的无知知识)
答案 0 :(得分:1)
许多语言都包含正则表达式模块,例如Python有re
module。这些正则表达式模块允许您搜索与正则表达式的多个匹配项,并返回所有匹配表达式的列表。然后,您可以遍历此列表,并确保与正则表达式匹配的数字按顺序递增。