1 /***************************************************************************
2 * Copyright (C) 2008-2012 by Andrzej Rybczak *
3 * electricityispower@gmail.com *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
24 Regex::Regex() : m_cflags(0), m_compiled(false) { }
26 Regex::Regex(const std::string
®ex_
, int cflags
)
27 : m_regex(regex_
), m_cflags(cflags
), m_compiled(false)
32 Regex::Regex (const Regex
&rhs
)
33 : m_regex(rhs
.m_regex
), m_cflags(rhs
.m_cflags
), m_compiled(false)
45 const std::string
&Regex::regex() const
50 const std::string
&Regex::error() const
62 int comp_res
= regcomp(&m_rx
, m_regex
.c_str(), m_cflags
);
67 regerror(comp_res
, &m_rx
, buf
, sizeof(buf
));
75 bool Regex::compile(const std::string
®ex_
, int cflags
)
82 bool Regex::match(const std::string
&s
) const
85 return regexec(&m_rx
, s
.c_str(), 0, 0, 0) == 0;
88 Regex
&Regex::operator=(const Regex
&rhs
)
92 m_regex
= rhs
.m_regex
;
93 m_cflags
= rhs
.m_cflags
;