[Interest] format of QString

André Somers andre at familiesomers.nl
Fri Apr 4 15:21:47 CEST 2014


sarah jones schreef op 4-4-2014 15:16:
> Hi
> I have tried this regular expression -
>
> QRegularExpression expression("^[cfmt]_\\d\\d\\d\\d\\d\\d\\.rcd$");
>
> if (expression.match(receivedFilename).hasMatch());
>
> this finds a match for m_000006.rcd
>
> but unfortunately it also matches m_0000006.rcd
>
> and I cannot figure out why
> I have tried this in some of the online regular expression tools and 
> it seems to work there
> What have I got wrong?
>
A dot is not treated as a literal character . but as an operator.
http://www.regular-expressions.info/dot.html

For readabiliy, I'd not use \\d 6 times, but simply use [\\d]{6} instead.

André


> Thanks
>
> Sarah
>
> > Date: Fri, 4 Apr 2014 13:58:10 +0200
> > From: andre at familiesomers.nl
> > To: interest at qt-project.org
> > Subject: Re: [Interest] format of QString
> >
> > R. Reucher schreef op 4-4-2014 13:47:
> > > A slight modification to your proposed reg-exp:
> > >
> > > QRegExp regExp("(m|c)_([0-9]{6})\\.rcp");
> >
> > For new (Qt 5) code, I really recommend using QRegularExpression 
> instead
> > of QRegExp where possible.
> >
> > André
> >
> > >
> > > Regards, René
> > >
> > > On Friday 04 April 2014 13:25:36 Etienne Sandré-Chardonnal wrote:
> > >> Hi sarah,
> > >>
> > >> This is untested but should work:
> > >>
> > >> QRegExp regExp("(m|c)_([0-9]{6}).rcp");
> > >> if(regExp.exactMatch(fileName))
> > >> {
> > >> //Here we know that filename matches the pattern
> > >> QString letter = regExp.cap(1); //Will be "m" or "c"
> > >> QString number = regExp.cap(2); //Will contain the six digits as a
> > >> string
> > >> }
> > >>
> > >>
> > >> Regular expressions are a vast topic, you will find a lot of 
> documentation
> > >> by googling it.
> > >>
> > >>
> > >> Etienne
> > >>
> > >> 2014-04-04 13:01 GMT+02:00 André Somers <andre at familiesomers.nl>:
> > >>> sarah jones schreef op 4-4-2014 12:47:
> > >>> Hi
> > >>> How would you advise that I ensure a QString object is of a 
> given format.
> > >>> In particular I want to check that a QString conforms to the 
> following
> > >>> m_ or c_
> > >>> followed by 6 digits (0-9)
> > >>> followed by ".rcd"
> > >>>
> > >>> so m_000001.rcd matches as does c_000003.rcd
> > >>> but not m_aa00002.rcd
> > >>> etc
> > >>>
> > >>> A regular expression sounds like the right tool for that. See
> > >>> QRegularExpression (Qt5) or QRegExp (Qt4).
> > >>>
> > >>> André
> > >>>
> > >>>
> > >>> _______________________________________________
> > >>> Interest mailing list
> > >>> Interest at qt-project.org
> > >>> http://lists.qt-project.org/mailman/listinfo/interest
> > > _______________________________________________
> > > Interest mailing list
> > > Interest at qt-project.org
> > > http://lists.qt-project.org/mailman/listinfo/interest
> >
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140404/788c897a/attachment.html>


More information about the Interest mailing list