gpt4 book ai didi

regex - 在 QT 中验证由点 (.) 分隔的字符串

转载 作者:行者123 更新时间:2023-12-04 23:25:55 25 4
gpt4 key购买 nike

任何人都可以建议我如何验证 QT 中以点 (.) 分隔的字符串,基本上就像 Java 中的包名一样,

我的代码是这样的

QRegExp rx("^[\\w]+[^\\.{0,1}\\w+$]*$");
rx.setCaseSensitivity(Qt::CaseInsensitive);
return rx.exactMatch(package);

但我得到了错误的结果

前任:
 com.me.test // valid
com.me.he. // invalid
.com.me.he // invalid
com..me.me // invalid

最佳答案

那是因为您错误地使用了字符类。方括号之间的字符是一个字符类,所以

 [^\\.{0,1}\\w+$]*

是一个否定字符类,因为它以 ^ 开头.此类将匹配不是以下字符之一的任何字符:“.{},01+$”或不在 \w 中的字符.

你想要的听起来更像
^\\w+(\\.\\w+)*$

看到它 here on Regexr

顺便说一下,您不需要 CaseInsensitive选项,因为您没有在正则表达式中明确写下字母。

关于regex - 在 QT 中验证由点 (.) 分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12948523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com