[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: wxwidgets: enable advanced (!) regular expressions.
From: |
Danny Milosavljevic |
Subject: |
Re: [PATCH] gnu: wxwidgets: enable advanced (!) regular expressions. |
Date: |
Sat, 7 May 2016 07:00:23 +0200 |
Hi,
some more docs about the so-called "advanced" regular expressions needed by
KiCad and wxRegEx in general:
http://wxd.sourceforge.net/wxWidgets-2.5.3/docs/html/wx/wx_wxregex.html
The "advanced" regular expression features (on top of extended regular
expressions) are:
- Escapes: \a \b \n \r etc have the usual C meaning (bell, backspace, newline,
carriage return etc)
- Class Shorthands: \d is the same as [[:digit:]]
- positive lookahead
- negative lookahead
The places in KiCad 4.0.1 where they are used are:
./eeschema/class_netlist_object.cpp:static wxRegEx busLabelRe( wxT(
"^([^[:space:]]+)(\\[[\\d]+\\.+[\\d]+\\])$" ), wxRE_ADVANCED );
./pcbnew/dialogs/dialog_fp_lib_table.cpp: wxRegEx re( wxT(
".*?\\$\\{(.+?)\\}.*?" ), wxRE_ADVANCED );
./pcbnew/netlist_reader.cpp: wxRegEx reOrcad( wxT( "(?i)[ ]*\\([ \t]+{+" ),
wxRE_ADVANCED );
./pcbnew/netlist_reader.cpp: wxRegEx reLegacy( wxT( "(?i)#[ \t]+EESchema[
\t]+Netlist[ \t]+" ), wxRE_ADVANCED );
./pcbnew/netlist_reader.cpp: wxRegEx reKicad( wxT( "[ ]*\\(export[ ]+" ),
wxRE_ADVANCED );
As you can see the "advanced" features are actually used in the eeschema
class_netlist_object (trivially, just the shorthand) and in the netlist reader
in two places (Escapes and some mysterious "(?i)" moniker - see
http://www.regular-expressions.info/modifiers.html . Not sure whether that
would be supported in POSIX extended regular expressions). As far as I can see
the other places don't actually use the "advanced" features. Note that POSIX
extended regular expressions are "almost an exact" subset of "advanced regular
expressions", according to the docs.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH] gnu: wxwidgets: enable advanced (!) regular expressions.,
Danny Milosavljevic <=