Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Extract text between 2 delimeters



  • Hello everyone,

    I want to extract some text delimited by "..." and "...." from another text.
    I've tried with QRegExp but I've found the right expression to use. I've used

    QRegExp rx("^\\...\\....$"); 
    

    to extract the text that begins with "...' and ends with "....". Can anyone correct me for this and telle me what I must add to ignore whitespaces.

    Many thanks in advance


  • Lifetime Qt Champion

    @mourad_bilog Please provide test data that shows what should be extracted by the regex.

    So long I can only guess:

    QRegExp rx("\\.\\.\\..*\\.\\.\\.\\.");

    Also note: QRegExp is deprecated, use QRegularExpression instead.



  • Many Thanks for your reply.

    Below an exemple of data :

    99mTc-MAG3 Doses absorbées par unité d'activité administrée (mGy/MBq)
    
    ... // begin of the regexp
    ~~ Organe : Surrénales | Adulte : 3,9E-04 | 15 ans : 5,1E-04 | 10 ans : 8,2E-04 | 5 ans : 1,2E-03 | 1 an : 2,5E-03
    ~ Organe : Vessie | Adulte : 1,1E-01 | 15 ans : 1,4E-01 | 10 ans : 1,7E-01 | 5 ans : 1,8E-01 | 1 an : 3,2E-01
    ~ Organe : Surf. osseuses | Adulte : 1,3E-03 | 15 ans : 1,6E-03 | 10 ans : 2,1E-03 | 5 ans : 2,4E-03 | 1 an : 4,3E-03
    ~ Organe : Cerveau | Adulte : 1,0E-04 | 15 ans : 1,3E-04 | 10 ans : 2,2E-04 | 5 ans : 3,5E-04 | 1 an : 6,1E-04
    ~ Organe : Seins | Adulte : 1,01E-04 | 15 ans : 1,4E-04 | 10 ans : 2,4E-04 | 5 ans : 3,9E-04 | 1 an : 8,2E-04
    ~ Organe : Vésicule | Adulte : 5,7E-04 | 15 ans : 8,7E-04 | 10 ans : 2,0E-03 | 5 ans : 1,7E-03 | 1 an : 2,8E-03
    ~ Organe : Tube digestif |  | | | |
    ~ Organe : Paroi gastrique | Adulte : 3,9E-04 | 15 ans : 4,9E-04 | 10 ans : 9,7E-04 | 5 ans : 1,3E-03 | 1 an : 2,5E -03
    ~ Organe : Intestin grêle | Adulte : 2,3E-03 | 15 ans : 3,0E-03 | 10 ans : 4,2E-03 | 5 ans : 4,6E -03 | 1 an : 7,8E -03
    ~ Organe : Côlon | Adulte : 3,4E-03 | 15 ans : 4,3E-03 | 10 ans : 5,9E-03 | 5 ans : 6,0E -03 | 1 an : 9,8E -03
    ~ Organe : (Côlon supérieur | Adulte : 1,7E-03 | 15 ans : 2,3E-03 | 10 ans : 3,4E-03 | 5 ans : 4,0E -03 | 1 an : 6,7E -03
    ~ Organe : (Côlon inférieur | Adulte : 5,7E-03 | 15 ans : 7,0E-03 | 10 ans : 9,2E-03 | 5 ans : 8,7E -03 | 1 an : 1,4E -02
    ~ Organe : Coeur | Adulte : 1,8E-04 | 15 ans : 2,4E-04 | 10 ans : 3,7E-04 | 5 ans : 5,7E -04 | 1 an : 1,2E -03
    ~ Organe : Reins | Adulte : 3,4E-03 | 15 ans : 4,2E-03 | 10 ans : 5,9E-03 | 5 ans : 8,4E -03 | 1 an : 1,5E -02
    ~ Organe : Foie | Adulte : 3,1E-04 | 15 ans : 4,3E-04 | 10 ans : 7,5E-04 | 5 ans : 1,1E -03 | 1 an : 2,1E -03
    ~ Organe : Poumons | Adulte : 1,5E-04 | 15 ans : 2,1E-04 | 10 ans : 3,3E-04 | 5 ans : 5,0E -04 | 1 an : 1,0E -03
    ~ Organe : Muscles | Adulte : 1,4E-03 | 15 ans : 1,7E-03 | 10 ans : 2,2E-03 | 5 ans : 2,4E -03 | 1 an : 4,1E -03
    ~ Organe : Oesophage | Adulte : 1,3E-04 | 15 ans : 1,8E-04 | 10 ans : 2,8E-04 | 5 ans : 4,4E -04 | 1 an : 8,2E -04
    ~ Organe : Ovaires | Adulte : 5,4E-03 | 15 ans : 6,9E-03 | 10 ans : 8,7E-03 | 5 ans : 8,7E -03 | 1 an : 1,4E -02
    ~ Organe : Pancréas | Adulte : 4,0E-04 | 15 ans : 5,0E-04 | 10 ans : 9,3E-04 | 5 ans : 1,3E -03 | 1 an : 2,5E -03
    ~ Organe : Moelle osseuse | Adulte : 9,3E-04 | 15 ans : 1,2E-03 | 10 ans : 1,6E-03 | 5 ans : 1,5E -03 | 1 an : 2,1E -03
    ~ Organe : Peau | Adulte : 4,6E-04 | 15 ans : 5,7E-04 | 10 ans : 8,3E-04 | 5 ans : 9,7E -04 | 1 an : 1,8E -03
    ~ Organe : Rate | Adulte : 3,6E-04 | 15 ans : 4,9E-04 | 10 ans : 7,9E-04 | 5 ans : 1,2E -03 | 1 an : 2,3E -03
    ~ Organe : Testicules | Adulte : 3,7E-03 | 15 ans : 5,3E-03 | 10 ans : 8,1E-03 | 5 ans : 8,7E -03 | 1 an : 1,6E -02
    ~ Organe : Thymus | Adulte : 1,3E-04 | 15 ans : 1,8E-04 | 10 ans : 2,8E-04 | 5 ans : 4,4E -04 | 1 an : 8,2E -04
    ~ Organe : Thyroïde | Adulte : 1,3E-04 | 15 ans : 1,6E-04 | 10 ans : 2,7E-04 | 5 ans : 4,4E -04 | 1 an : 8,2E -04
    ~ Organe : Utérus | Adulte : 1,2E-02 | 15 ans : 1,4E-02 | 10 ans : 1,9E-02 | 5 ans : 1,9E -02 | 1 an : 3,1E -02
    ~ Organe : Autres organes | Adulte : 1,3E-03 | 15 ans : 1,6E-03 | 10 ans : 2,1E-03 | 5 ans : 2,2E -03 | 1 an : 3,6E -03
    ~~ Dose efficace (mSv/MBq) |  | | | |
    ~ Vidange 2 heures après admin | Adulte : 7,0E-03 | 15 ans : 9,0E-03 | 10 ans : 1,2E-02 | 5 ans : 1,2E -02 |1 an : 2,2E -02
    ~ 1 heure après admin | Adulte : 2,5E-03 | 15 ans : 3,1E-03 | 10 ans : 4,5E-03 | 5 ans : 6,4E -03 | 1 an : 6,4E -03
    ~ 30 minutes après admin | Adulte : 1,7E-03 | 15 ans : 2,1E-03 | 10 ans : 2,9E-03 | 5 ans : 3,9E -03 | 1 an : 6,8E -03
    .... // end of the regexp
    
    Les parois de la vessie contribuent jusqu'à 80 % de la dose efficace.
    

    I must extract the data between "..." and "...."


  • Lifetime Qt Champion

    @mourad_bilog So the data spreads over multiple lines?

    In that case, you will have to use a multiline option - please refer to the documentation how to do this.

    Regards



  • Thanks for your help.

    I'm on.


Log in to reply