似乎在使用正则表达式之前必须“编译”。为什么这需要明确地完成?为什么'pcre_exec'不能自己做这项工作?
问问题
129 次
1 回答
6
这是一个设计决定。
可以,但是如果它一步完成编译和执行,那么多次使用同一个正则表达式将是非常低效的。正则表达式的编译是一项计算量大的操作(就像编译一些用编程语言编写的源代码一样昂贵),所以如果你想多次使用正则表达式,那么做
expensive_compilation(regex_object, "/the/regular\.expression$");
for (i = 0; i < 1000000; i++)
regex_match(regex_object, next_line_to_be_processed);
将比在循环内移动(冗余)编译要快得多。
于 2013-07-31T07:52:52.647 回答