在Qt项目中,我不得不通过以下分隔符分割QString
我最好的尝试是(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]?)
,如
QRegExp xp("(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]? )");
QString str = "Eminem Feat. Rihanna";
QStringList list = alist.split(xp);
以上代码行对我不起作用。这是一个简单的RegExp问题。我太困惑了。任何形式的帮助或建议都会很棒!
答案 0 :(得分:2)
你在正则表达式的第二部分有一个额外的字符类。
尝试使用:
QRegExp xp("(?: [Ff]eat[.]? )|(?: [Ff]eaturing[.]? )");
您可以使用?
量词在一个模式中组合它们,并且您不需要最外层的非捕获组。
QRegExp xp(" [Ff]eat(?:uring)?[.]? ");
答案 1 :(得分:1)
尝试这种模式:
(?: [fF]eat(?:uring)?\.? )
或用字边界替换空格
(?:\b[fF]eat(?:uring)?\.?\b)