2

在 Qt 项目中,我必须通过以下分隔符拆分 QString

  1. 壮举。
  2. 壮举。
  3. 壮举
  4. 壮举
  5. 特色
  6. 特色。
  7. 特色
  8. 特色

我最好的尝试(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]?)

QRegExp xp("(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]? )");
QString str = "Eminem Feat. Rihanna";
QStringList list = alist.split(xp);

上面的代码行对我不起作用。这是一个简单的正则表达式问题。我只是太困惑了。任何形式的帮助或建议都会很棒!

4

2 回答 2

2

您在正则表达式的第二部分有一个额外的字符类。

尝试使用这个:

QRegExp xp("(?: [Ff]eat[.]? )|(?: [Ff]eaturing[.]? )");

您可以使用量词将它们组合成一种模式,?并且您不需要最外面的非捕获组。

QRegExp xp(" [Ff]eat(?:uring)?[.]? ");
于 2013-07-03T18:08:06.743 回答
1

试试这个模式:

(?: [fF]eat(?:uring)?\.? )

或者用单词边界替换空格

(?:\b[fF]eat(?:uring)?\.?\b)
于 2013-07-03T18:08:35.927 回答