[Development] QRegularExpression -- first round of API review

Giuseppe D'Angelo dangelog at gmail.com
Tue Jan 17 16:15:15 CET 2012


2012/1/17 Thiago Macieira <thiago.macieira at intel.com>:
> On Tuesday, 17 de January de 2012 02.43.33, Giuseppe D'Angelo wrote:
>> 1) Support for more pattern options and match options. Right now you
>> can see them commented in the .h (and there's no code for them), but
>> adding them is trivial. Any opinions for just enabling them or only
>> some? In particular, InvertedGreedinessOption for giving a (more or
>> less) direct replacement of QRegExp::setMinimal, and
>> AllowDuplicatedNamesOption (see the next point) for duplicated names
>> in named capturing groups.
>
> Call it NonGreedyOption and I think that should be enabled.

The name InvertedGreedinessOption came from the fact that it inverts
the greediness of the quantifiers: * becomes ungreedy, *? becomes
greedy (the same applies for all other quantifiers). I'll add it
though.

> UseUnicodePropertiesOption: can we reduce the size of the library in certain
> scenarios if we don't have this option?

I don't think so, I think we still need PCRE to have its Unicode
tables for having case insensitive matches.

> DontCaptureOption: is this a memory saving mechanism? What else does it do,
> besides making the capture groups return empty or invalid? If it's just a
> memory saving option, I'd say let it in.

It simply disables the non-named capturing groups, so they simply
group but not capture substrings any more. Named capturing groups
still work, though. I see it as both an optimizer and syntactic sugar,
avoiding you to write lots of (?:...) groups if you don't really need
to capture anything but only group.

> MatchFirstLineOnlyOption and DollarMatchesOnlyAtEndOption: I can't tell from
> the name only. How do they interact with the MultilineOption? My guess is to
> leave them out for now. We can always introduce them later.

Great.

Thanks,
-- 
Giuseppe D'Angelo



More information about the Development mailing list