我正在尝试在 Qt 中为以下字符串集构建正则表达式:
该集合可以包含长度为 1 且不包括r
和的所有字符串集合z
。
该集合还包括长度大于 的字符串集合,这些字符串以1
开头z
,后跟任意数量的字符串,但必须以不为和z's
的单个字符结尾r
z
到目前为止,我已经开发了以下内容:
[a-qs-y]?|z+[a-qs-y]
但它不起作用。
我正在尝试在 Qt 中为以下字符串集构建正则表达式:
该集合可以包含长度为 1 且不包括r
和的所有字符串集合z
。
该集合还包括长度大于 的字符串集合,这些字符串以1
开头z
,后跟任意数量的字符串,但必须以不为和z's
的单个字符结尾r
z
到目前为止,我已经开发了以下内容:
[a-qs-y]?|z+[a-qs-y]
但它不起作用。
正则表达式中的问号导致第一个选择匹配长度为 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);
// ...
}