Search code examples
regexqtqregexp

Regex - Private subtags RFC5646


Can someone please help me with a regex to pull out subtags from a RFC5646?

Example strings

en-us-x-test-test1 = test,test1
en-gb-x-test-test2 = test,test2
fr-x-test-test3 = test,test3

I'm using a QRegExp

Thanks for any assistance


Solution

  • You don't need a regex here. Split your input by - then take the last two string and add a coma in between:

    QString str = "en-us-x-test-test1";
    QStringList list = str.split('-');
    QString output = list.at(list.count()-2) + "," + list.at(list.count()-1);
    

    Of course, you have to check for list length to avoid index error.