Вот оно:
select type, cnt_value/sum_value as score
FROM (
SELECT type, count (value) as cnt_value , sum (value) as sum_value
FROM Table1
WHERE
CODE = 'Q2' AND
VALUE in (1,2)
GROUP by type
)
Scintilla, компонент текстового редактора с открытым исходным кодом, использует механизм РЕ Ozan S. Yigit
Это было выбрано, потому что это находится в общественном достоянии (так никакая лицензия обременения) и очень легко. Но это немного ограничено... Если это имеет значение RESearch.cxx использует немного более современный код (преобразованный в C++, но это не должно быть сложно для преобразования его назад в C) с некоторыми незначительными расширениями, сделанными один (поддержка \d \s \w и т.д.).
Существуют некоторые альтернативы, как библиотеки регулярных выражений Henry Spencer.
Задумайтесь о нем, механизм Lua regex (в строковой библиотеке, gsub реализация среди других) является, вероятно, быстрым и маленьким также, как сам язык. Это имеет свои причуды и ограничения, но это очень применимо.
Параллельный проект LPeg может быть интересной альтернативой REs, все еще легкому все же мощный.
Учитывая Ваши легкие требования, я рекомендовал бы regex библиотеку Henry Spencer, которая реализует BRE POSIX и ДО regex разновидности. Это стандартные regex разновидности, с которыми Ваши пользователи уже вероятны знакомые.
Если Вы не потребуете полнофункциональной regex реализации (и она кажется, что Вы не делаете), затем, то код, написанный Brian Kernighan и Rob Pike, выделенным в Красивом Коде, будет, вероятно, работать на Ваши потребности. Я нашел статью доктора Dobb, которая я думаю, происхождение кода, который появляется в книге.