blob: 2c2a55aa846f0a6088055f84e81cbc23a28c4e94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#ifndef __PY_REGEX_H_
#define __PY_REGEX_H_
#include <sys/types.h>
#include <regex.h>
#include <glib.h>
namespace PY {
class Regex {
public:
Regex (const gchar *regex, gint cflags = REG_EXTENDED) {
int retval;
retval = regcomp (&m_regex, regex, cflags);
if (retval != 0) {
gchar errorbuf[128];
regerror (retval, &m_regex, errorbuf, sizeof (errorbuf));
g_debug ("regex error: %s", errorbuf);
g_assert_not_reached ();
}
}
~Regex (void) {
regfree (&m_regex);
}
gboolean match (const gchar *str) const {
int retval;
regmatch_t match;
retval = regexec (&m_regex, str, 1, &match, 0);
return retval == 0;
}
gboolean operator & (const gchar *str) const {
return match (str);
}
private:
regex_t m_regex;
};
};
#endif
|