Does Pharo use the Regex11 package? If yes, has it already diverged from the version shipped with VisualWorks?
The reason I am asking is that I just pushed an update to the public store. It addresses a bug that prevented $[ to be used in a character class. For details, see the excerpt below. Furthermore, you might have an opinion on allowing more escape sequences in character classes, don't you?
Steffen
----- Weitergeleitete Nachricht -----
Von: Steffen M��rcker <merkste@web.de>
An: 'VWNC' <vwnc@cs.uiuc.edu>
Betreff: Re: [vwnc] Exception in Regex11 1.4.6
Datum: Thu Jun 24 2021 18:47:01 GMT+0200 (Mitteleurop��ische Sommerzeit)
Hi!
I just published Regex11
version 1.4.7 with the following changes:
1.
Fix: Character sets could not contain an opening bracket $[.
2.
Fix: Character sets could not contain the characters '[:', e.g. as in
'[[:something]' asRegex.
I also provided
additional tests for the improved functionality. I might tidy the code a
bit later in a minor version bump.
Just to note that Regex11 uses
[[:xxx:]] as a special syntax, which might interfere with attempts to allow
[[] and []].
Indeed. If I did
no mistake, the new version does not break this.
I agree with the idea to allow
backslash escaping in character classes too, with the default being that
backslash followed by any character is parsed as that
character.
I also like the idea of
allowing more backslash escaping in character classes. However, I still
have the bad feeling that this might change the semantics of existing code.
Hence, I refrained from implementing this right away until I am more
confident that this does not break other peoples
stuff.
Currently only
a few explicitly defined backslash escapes are recognized, forcing the
user to remember whether a given character can be used as-is in a given
context, or must be escaped.
A couple of gotchas (probably not
applicable in a character set?):
\<
an empty string at the beginning of a word
\>
an empty string at the end of a
word
Thanks, I'll keep them in mind
and consider them when I decide to implement the
changes.
OT: I also noticed that repetition, e.g.
'.{5}' behaves strange. For instance, '.{{5}}' should match 'a{{{{{}' but
it doesn't. Has anyone an opinion on that
one?
Best regards, Steffen
--
Gesendet mit Vivaldi Mail. Laden Sie Vivaldi kostenlos von vivaldi.com herunter.