C/C++ 中的正则表达式
我需要将正则表达式存储在平面文件中并读取它们。将有 1000 个正则表达式(我的意思是 1000 行,每行有 3 个正则表达式模式,每行由分隔符隔开,比如 #)。 第一个 regex1 是十六进制类型,其他 2 个是整数。
平面文件将有
regex1#regex2#regex3
我现在有 2 个要求 1)如果正则表达式无效,我想抛出一个错误。 我通过 regcomp 函数执行此操作,这基本上将检查它是否是正确的正则表达式(例如缺少括号等)。
2)我还有一个要求,其中我需要验证可以导出的正则表达式的所有可能值,如果操作员在文件中输入错误的条目,则抛出错误。
如何实现我的第二个目标是我的第二个问题
意思是
说 regex1 可以用十六进制表示,但它可以用多种方式表示,我知道 regex1、regex2 和 regex3 的长度。但我想知道它们是否是有效的正则表达式或不是。
基本上简而言之,我想知道 C 正则表达式库中是否有任何内容可以验证我的正则表达式模式。
i have requirement to store the regex in flat file and read them.There will be 1000 regex (i mean 1000 lines with 3 regex pattern each on one line seperated by a delimeter say #).
And the first regex1 is of type hex and other 2 are integers.
FLAT FILE will have
regex1#regex2#regex3
i have now 2 requirement
1)I want throw an error if the regex are not valid.
This im doing via regcomp function and this basically will check whether it is a proper regex or not(like missing brackets and all).
2)I have one more requirement wherein i need to valid all possible values for the regex which can be derived and throw an error if the operator enters the wrong entry in file.
How can achieve my second goal is my second question
Meaning
say regex1 can be represented in hex but it can be represented in many ways,i knw the length of the regex1,regex2 and regex3.But i want to know whether they are valid regex or not.
basically in short i want to knw is there anything in C regex library which will validate my regex pattern.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您不介意使用外部库,我会使用 boost::regex 。它有多种方法来验证正则表达式,并且通常会抛出异常,说明您尝试使用的表达式无效。
http://www.boost.org/doc/libs /1_32_0/libs/regex/doc/basic_regex.html
I'd use boost::regex for this if you don't mind using an external library. It has a number of ways to validate regular expressions, and will typically throw you exceptions stating when an expression you're trying to use is invalid.
http://www.boost.org/doc/libs/1_32_0/libs/regex/doc/basic_regex.html
我在
pcre
方面运气很好。它是轻量级、简单的 C 代码,可以很好地处理正则表达式解析,而且速度也非常快。I've had great luck with
pcre
. It's lightweight, simple C code which handles regex parsing very well and it's also extremely fast.