Regex Qt正则表达式(?[Ff]eat[.]?)|(?:[[Ff]eaturing][.]?)
在Qt项目中,我必须用以下分隔符拆分QStringRegex Qt正则表达式(?[Ff]eat[.]?)|(?:[[Ff]eaturing][.]?),regex,qt,Regex,Qt,在Qt项目中,我必须用以下分隔符拆分QString 壮举 壮举 壮举 壮举 特色 特色 特色 特色 我最好的尝试是吃东西,就像在 QRegExp xp("(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]? )"); QString str = "Eminem Feat. Rihanna"; QStringList list = alist.split(xp); 上面的代码行对我不起作用。这是一个简单的RegExp问题。我只是太糊涂了。任何形式的帮助或建议都会很棒
QRegExp xp("(?: [Ff]eat[.]? )|(?: [[Ff]eaturing][.]? )");
QString str = "Eminem Feat. Rihanna";
QStringList list = alist.split(xp);
上面的代码行对我不起作用。这是一个简单的RegExp问题。我只是太糊涂了。任何形式的帮助或建议都会很棒 在正则表达式的第二部分中有一个额外的字符类 尝试使用以下方法:
QRegExp xp("(?: [Ff]eat[.]? )|(?: [Ff]eaturing[.]? )");
您可以使用?
量词将它们组合在一个模式中,并且不需要最外层的非捕获组
QRegExp xp(" [Ff]eat(?:uring)?[.]? ");
尝试以下模式:
(?: [fF]eat(?:uring)?\.? )
或者用单词边界替换空格
(?:\b[fF]eat(?:uring)?\.?\b)
如果你想捕捉所有的情况(例如,壮举、壮举和壮举),你可以考虑使用。这比像您使用
[Ff]
@Phlucious那样单独手动输入每个字母要简单得多:这很有意义。但是知道如何检查英尺或英尺吗?qregexpxp(\\sf(?:ea)?t(?:uring)?[.]?\\s”)代码>是我将如何做的。主要区别在于,您包装了“ea”以使其成为可选的。如果使用Rohit的第一个选项,则只需将其添加为另一个选项或类似于QRegExp中的选项((?:\\sfeat[.]?\\s)|(?:\\sfeaturing[.]?\\s)|(?:\\sft[.]?\\s)代码>在Qt的正则表达式示例中使用它。我在QRegExp xp(“\\sf(?:ea)?t(?:uring)?[.]?\\s”)
上尝试过,但它也与fturing匹配!无论如何,我会找到答案的,谢谢你的帮助:)