正则表达式匹配及词法高亮检查

本文探讨了Qt编程中的正则表达式匹配问题,包括信号和槽的对应、正则表达式的使用技巧以及QSyntaxHighlighter在文本高亮中的应用。重点讨论了s匹配空格的注意事项、Qstring的操作以及如何处理结构体数据。同时,文章还提及了内存占用和程序性能的监测,以及Qt错误信息存储到数据库的可能方案。
摘要由CSDN通过智能技术生成

connect中信号和槽严格对应?

SIGNAL--SLot,不能一个&取地址,一个slot

connect(m_pThreadMatlab, SIGNAL(openMatlabEngine(bool)), this, SLOT(slot_openMatlabEngine(bool)))
    QRegExp rxlen("(\\d+)(?:\s+)(cm|inch(?:es)?)");//这里没有严格规定从头开始匹配
    int pos = rxlen.indexIn("Length: 189cm");

为什么\s后面是+无法匹配,匹配1或多次, 如果是*就可以,匹配0或多次

  • 若要匹配一行文本开始处的文本,请在正则表达式的开始使用 ^ 字符。不要将 ^ 的这种用法与中括号表达式内的用法混淆。
  • 若要匹配一行文本的结束处的文本,请在正则表达式的结束处使用 $ 字符。
  • [a-z]表示要匹配的范围,{表示要匹配的重复多少次, 同*匹配任意多次,或者+匹配一次以上}——量词
  • (断言 ?=E表达式)(?!E)
/[1-9][0-9]?/
或者 ?的效果
/[1-9][0-9]{0,1}/

学习地址:https://blog.csdn.net/qq_41399894/article/details/87800161

exp1(?=exp2):查找 exp2 前面的 exp1。!!!exp1才是匹配目标,exp2不会匹配。

匹配数字前面的ruuoob字符串
/ruuoob(?=[\d+])/g
使用示例
123456ruuoob123ruuoob456结果ruuoob,ruuoob

!目的是说匹配后面那个exp

(?<=exp2)exp1:查找 exp2 后面的 exp1。
.{2} 所有的两个字符

 

/ter\b/ 可匹配chapter,而不能匹配terminal。

.匹配的所有的字符,而不是.

/filename\.ext/

若要创建匹配字符组的一个列表,请在方括号([ 和 ])内放置一个或更多单个字符。

double或者float?


浮点数:"^(-?\d+)(\.\d+)?$"

唯一一个空格区分怎么做到的?空格也包括在\\s之内

?=相当于这一段不要了!!

QRegExp rx("(\\d+)(?:\\s*)(cm|inch(?:es)?)");
int pos = rx.indexIn("Length: 36 inches");
QStringList list = rx.capturedTexts();
// list is now ("36 inches", "36", "inches")

QRegExp rx("(\\d+)(\\s*)(cm|inch(es)?)");
int pos = rx.indexIn("Length: 36 inches");
QStringList list = rx.capturedTexts();
// list is now ("36 inches", "36", " ", "inches", "es")
\s 匹配任意空白字符
\S 匹配任意非空白的字符

\s空白字符确实就是指空格!!!!但空格不匹配,故常用?:

不可以用加号分开写吗?

最简单去空格

    QString rule = "(?:\\s*)(\\d+)";
    QRegExp rxlen(rule);//这里没有严格规定从头开始匹配
    int pos = rxlen.indexIn("      189");

qDebug() << rxlen.cap(1);

    QString rule = "(?:\\s*)(\\d+)(?:\\s*)(\\d+)";
    QRegExp rxlen(rule);
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值