/usr/include/wx-3.0/wx/regex.h is in wx3.0-headers 3.0.2+dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | ///////////////////////////////////////////////////////////////////////////////
// Name: wx/regex.h
// Purpose: regular expression matching
// Author: Karsten Ballueder
// Modified by: VZ at 13.07.01 (integrated to wxWin)
// Created: 05.02.2000
// Copyright: (c) 2000 Karsten Ballueder <ballueder@gmx.net>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_REGEX_H_
#define _WX_REGEX_H_
#include "wx/defs.h"
#if wxUSE_REGEX
#include "wx/string.h"
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// flags for regex compilation: these can be used with Compile()
enum
{
// use extended regex syntax
wxRE_EXTENDED = 0,
// use advanced RE syntax (built-in regex only)
#ifdef wxHAS_REGEX_ADVANCED
wxRE_ADVANCED = 1,
#endif
// use basic RE syntax
wxRE_BASIC = 2,
// ignore case in match
wxRE_ICASE = 4,
// only check match, don't set back references
wxRE_NOSUB = 8,
// if not set, treat '\n' as an ordinary character, otherwise it is
// special: it is not matched by '.' and '^' and '$' always match
// after/before it regardless of the setting of wxRE_NOT[BE]OL
wxRE_NEWLINE = 16,
// default flags
wxRE_DEFAULT = wxRE_EXTENDED
};
// flags for regex matching: these can be used with Matches()
//
// these flags are mainly useful when doing several matches in a long string,
// they can be used to prevent erroneous matches for '^' and '$'
enum
{
// '^' doesn't match at the start of line
wxRE_NOTBOL = 32,
// '$' doesn't match at the end of line
wxRE_NOTEOL = 64
};
// ----------------------------------------------------------------------------
// wxRegEx: a regular expression
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_FWD_BASE wxRegExImpl;
class WXDLLIMPEXP_BASE wxRegEx
{
public:
// default ctor: use Compile() later
wxRegEx() { Init(); }
// create and compile
wxRegEx(const wxString& expr, int flags = wxRE_DEFAULT)
{
Init();
(void)Compile(expr, flags);
}
// return true if this is a valid compiled regular expression
bool IsValid() const { return m_impl != NULL; }
// compile the string into regular expression, return true if ok or false
// if string has a syntax error
bool Compile(const wxString& pattern, int flags = wxRE_DEFAULT);
// matches the precompiled regular expression against a string, return
// true if matches and false otherwise
//
// flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL
// len may be the length of text (ignored by most system regex libs)
//
// may only be called after successful call to Compile()
bool Matches(const wxString& text, int flags = 0) const;
bool Matches(const wxChar *text, int flags, size_t len) const
{ return Matches(wxString(text, len), flags); }
// get the start index and the length of the match of the expression
// (index 0) or a bracketed subexpression (index != 0)
//
// may only be called after successful call to Matches()
//
// return false if no match or on error
bool GetMatch(size_t *start, size_t *len, size_t index = 0) const;
// return the part of string corresponding to the match, empty string is
// returned if match failed
//
// may only be called after successful call to Matches()
wxString GetMatch(const wxString& text, size_t index = 0) const;
// return the size of the array of matches, i.e. the number of bracketed
// subexpressions plus one for the expression itself, or 0 on error.
//
// may only be called after successful call to Compile()
size_t GetMatchCount() const;
// replaces the current regular expression in the string pointed to by
// pattern, with the text in replacement and return number of matches
// replaced (maybe 0 if none found) or -1 on error
//
// the replacement text may contain backreferences (\number) which will be
// replaced with the value of the corresponding subexpression in the
// pattern match
//
// maxMatches may be used to limit the number of replacements made, setting
// it to 1, for example, will only replace first occurrence (if any) of the
// pattern in the text while default value of 0 means replace all
int Replace(wxString *text, const wxString& replacement,
size_t maxMatches = 0) const;
// replace the first occurrence
int ReplaceFirst(wxString *text, const wxString& replacement) const
{ return Replace(text, replacement, 1); }
// replace all occurrences: this is actually a synonym for Replace()
int ReplaceAll(wxString *text, const wxString& replacement) const
{ return Replace(text, replacement, 0); }
// dtor not virtual, don't derive from this class
~wxRegEx();
private:
// common part of all ctors
void Init();
// the real guts of this class
wxRegExImpl *m_impl;
// as long as the class wxRegExImpl is not ref-counted,
// instances of the handle wxRegEx must not be copied.
wxRegEx(const wxRegEx&);
wxRegEx &operator=(const wxRegEx&);
};
#endif // wxUSE_REGEX
#endif // _WX_REGEX_H_
|