貌似被空格坑了

最近开始学习Qt了,看的自然是《C.plus.plus.GUI.Programming.with.Qt.4》。

在照着书上敲第二章那个GoToCellDlg例子的时候,发现lineEdit一直无法输入内容。

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()));
}

但是,如果注释掉:

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

则又可以输入内容了。无奈,找到书中源码,复制粘贴之,竟然一切正常!!!

仔细对比自己手打的代码和随书源代码之后,我发现,我在敲正则表达式的时候,习惯性地把:

{0,2}

写成了:

{0, 2} // 注意逗号后面的空格

查了一下维基百科中正则表达式这个词条。其中在介绍{n,m}时这样说:

“mn均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,「o{1,3}」将匹配「fooooood」中的前三个o。「o{0,1}」等价于「o?」。请注意在逗号和两个数之间不能有空格。”

看来以后敲正则表达式不能随便添加空格啊!

最后,向伟大的维基百科致敬!!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值