edelib
0.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
edelib
Regex.h
1
/*
2
* $Id: Regex.h 2839 2009-09-28 11:36:20Z karijes $
3
*
4
* Regex class
5
* Copyright (c) 2007-2009 edelib authors
6
*
7
* This library is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2 of the License, or (at your option) any later version.
11
*
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef __EDELIB_REGEX_H__
22
#define __EDELIB_REGEX_H__
23
24
#include "List.h"
25
#include "String.h"
26
27
EDELIB_NS_BEGIN
28
34
enum
RegexMode
{
35
RX_EXTENDED
= (1 << 1),
36
RX_CASELESS = (1 << 2),
37
RX_DOLLAR_ENDONLY
= (1 << 3),
38
RX_DOTALL = (1 << 4),
39
RX_MULTILINE
= (1 << 5),
40
RX_UNGREEDY = (1 << 6)
41
};
42
48
enum
RegexMatchMode
{
49
RX_MATCH_ANCHORED
= (1 << 1),
50
RX_MATCH_NOTBOL = (1 << 2),
51
RX_MATCH_NOTEOL
= (1 << 3),
52
RX_MATCH_NOTEMPTY = (1 << 4)
53
};
54
55
#ifndef SKIP_DOCS
56
struct
RegexData;
57
#endif
58
65
struct
RegexMatch
{
67
int
offset
;
69
int
length
;
70
};
71
98
class
EDELIB_API
Regex
{
99
private
:
100
RegexData* data;
101
102
void
clear(
void
);
103
E_DISABLE_CLASS_COPY
(
Regex
)
104
public
:
106
typedef
list<RegexMatch>
MatchVec
;
107
111
Regex
();
112
116
~
Regex
();
117
125
bool
compile(
const
char
* pattern,
int
m = 0);
126
136
operator
bool(
void
)
const
;
137
150
int
match(
const
char
* str,
int
match_mode,
int
start,
int
len,
MatchVec
* matches);
151
156
int
match(
const
char
* str,
int
match_mode = 0,
MatchVec
* matches = 0)
157
{
return
match
(str, match_mode, 0, -1, matches); }
158
167
int
split(
const
char
* str,
list<String>
& ls,
int
match_mode = 0);
168
172
const
char
* strerror(
void
)
const
;
173
};
174
175
EDELIB_NS_END
176
#endif
Generated on Thu Mar 13 2014 23:36:14 for edelib by
1.8.2