在文本中查找特定标记并验证它们(RegExp?)

时间:2014-07-30 11:11:37

标签: c++ regex pattern-matching

我有一些包含C++ code的文本文件,我必须检查每个硬编码stringstatic 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%)+([^"]|\\")*"? (它可以根据在线测试人员的工作,但也许有一种方法可以提高我的无知知识)

1 个答案:

答案 0 :(得分:1)

许多语言都包含正则表达式模块,例如Python有re module。这些正则表达式模块允许您搜索与正则表达式的多个匹配项,并返回所有匹配表达式的列表。然后,您可以遍历此列表,并确保与正则表达式匹配的数字按顺序递增。