Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在文本中查找特定标记并验证它们(RegExp?)_C++_Regex_Pattern Matching - Fatal编程技术网

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

C++ 在文本中查找特定标记并验证它们(RegExp?),c++,regex,pattern-matching,C++,Regex,Pattern Matching,我有一些包含C++code的文本文件,其中我必须检查每个硬编码字符串(static const char*)中的占位符,并验证顺序 我们对占位符标记使用boost::format,占位符标记基本上是一个“%”,后跟一个数字(1到n)和一个“%” 现在我需要找到所有不是按升序排列的字符串 例如: // this is a valid string containing tokens string valid = "this %1% \"contains\" %2% %3%"; // this is

我有一些包含
C++code
的文本文件,其中我必须检查每个硬编码
字符串(
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
,可以找到所有包含标记的文本,并了解如何验证排序


有没有比
“((([^“]\124;\\”*)?%\ d%)+([^“]\124;\\”*”)更优雅的方法来编写
regexp
?(根据在线测试人员的说法,它可以工作,但也许有一种方法可以提高我的noobish知识)

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

您可以获得所有匹配项的列表,只需循环此列表即可查看数字是否按递增顺序排列。仅使用正则表达式是不可能的。@JoachimPileborg喜欢使用
grep
将所有带有标记的内容放入一个文件,并使用例如
python
来完成其余的工作。为什么不直接将python与它一起使用呢?或者任何其他支持正则表达式的语言,现在几乎是任何语言。@JoachimPileborg是的,更直截了当。你能写一个“答复”让我把它记下来吗?