我正在尝试在Qt中为以下字符串集构建一个正则表达式:
该集可以包含长度为1的所有字符串集,其中不包括r
和z
。
该集还包括一组长度大于1
的字符串,以z
开头,后跟任意数量的z's
,但必须以单个字符终止r
和z
到目前为止,我已经开发了以下内容:
[a-qs-y]?|z+[a-qs-y]
但它不起作用。任何见解都将不胜感激。
答案 0 :(得分:0)
正则表达式中的问号导致第一个替代方法匹配长度为1的小写字符串,不包括r和z或空字符串,并且由于空字符串可以在任何字符串中匹配,因此第二个替代方案将永远不会匹配反对。正则表达式的其余部分符合您的规范,但您可能希望通过锚定它来使正则表达式仅匹配整个字符串:
QRegularExpression re("^[a-qs-y]$|^z+[a-qs-y]$");
QRegularExpressionMatch match = re.match("zzza");
if (match.hasMatch()) {
QString matched = match.captured(0);
// ...
}