了解一下它为什么产生:
在项目中经常会遇到对字符串进行操作的情况,我们可以直接使用QString的一些函数,但QT提供了一个更加强大的类——QRegExp,使用正则表达式来操作字符串。
先说说我最近遇到的几个问题:
1.对输入框LineEdit中的输入内容加以限制,比如只能输入数字,并且最多5位数(因为int类型不限制位数会导致溢出问题);
2.检查输入是否正确,比如判断是否是1-9999之间的数;
3.获取一个字符串中的一段内容,比如获取2015-11-20中的2015。
为了解决这些问题,下面先看看正则表达式的基本知识。
基础指示维基百科:
正则表达式(Regular Expression,通常简写为RegExp、RE等),预先定义一些字符或字符的组合,用于匹配文本中的一段字符串。下面是它的一些用途——
1.验证
判断字符串是否符合某个标准,比如“是一个整数”或者“没有空格”。
2.搜索
正则表达式提供了比普通字符串匹配更为强大的匹配方式,比如匹配下面的词语:mail, letter, correspondence,但是不包括email, mailman, letterbox等等。
3.查找并替换
正则表达式能够用一个不同的字符串,替换所有出现另一个字符串的地方,比如用&替换&,如果原先&后面已经有了amp;那么不替换。
4.分割字符串
比如,根据tab来分割字符串。
使用正则表达式首先需要了解一些符号的作用,比如\d用来匹配数字,下面结合一些例子说明。
具体举一个例子来说明它的作用:
用来匹配一段字符串是否合