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是的,更直截了当。你能写一个“答复”让我把它记下来吗?