• 8609阅读
  • 7回复

QRegExp(已解决) [复制链接]

上一主题 下一主题
离线wzsiatf
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-17
— 本帖被 XChinux 执行加亮操作(2010-11-18) —
关键词: QT4求助QRegExp
QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");语句中的最后一个{}里的内容有什么用呢?
[ 此帖被wzsiatf在2010-11-18 15:26重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-11-17
离线wzsiatf
只看该作者 2楼 发表于: 2010-11-17
回 1楼(dbzhang800) 的帖子
这个我看了,就是没看懂,英文的有点不理解。"x {1,5}表示匹配一个X字符序列,其中包含至少一个X,但不超过五。"
麻烦高人能不能用通俗点的针对我上面那语句解释一下呢?
离线dbzhang800

只看该作者 3楼 发表于: 2010-11-17
Re:回 1楼(dbzhang800) 的帖子
引用第2楼wzsiatf于2010-11-17 21:00发表的 回 1楼(dbzhang800) 的帖子 :
这个我看了,就是没看懂,英文的有点不理解。"x {1,5}表示匹配一个X字符序列,其中包含至少一个X,但不超过五。"
麻烦高人能不能用通俗点的针对我上面那语句解释一下呢?

不太理解的地方可以边看边试,Qt 自带例子中就有一个很好用的验证正则表达式的工具(去 examples 目录下找)。

不过你已经翻译成中文了。

x{1,5}
匹配
x
xx
xxx
xxxx
xxxxx
离线roywillow

只看该作者 4楼 发表于: 2010-11-17
就是说要有1到5个x在一起……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wzsiatf
只看该作者 5楼 发表于: 2010-11-17
回 4楼(roywillow) 的帖子
那针对我的语句里,x是什么呢?
GoToCellDialog::GoToCellDialog(QWidget *parent)
    : QDialog(parent)
{
    setupUi(this);

    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
    lineEdit->setValidator(new QRegExpValidator(regExp, this));

    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
}

void GoToCellDialog::on_lineEdit_textChanged()
{
    okButton->setEnabled(lineEdit->hasAcceptableInput());
}
运行后在空格处输入第一位是字母(大小都可),第二位数字是1-9,第三位数字是0-9,我试了第四随便一个数字即可,其让他方式无法输入,本人刚学,还是不太理解{}的意思,谁能针对我这个程序讲讲?
离线roywillow

只看该作者 6楼 发表于: 2010-11-17
我的理解是
第一个字符为字母,[A-Za-z]
接着跟着一个1到9的数字,[1-9]
然后可以跟0到2个0到9的数字,[0-9]{0,2}
总的结果应该是一个字母后必须跟着一个数字,并且至多三位数
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线wzsiatf
只看该作者 7楼 发表于: 2010-11-17
回 6楼(roywillow) 的帖子
我明白了,十分感谢,也就是[0-9]是manual里的X!谢谢你!
快速回复
限100 字节
 
上一个 下一个