Qt之正则表达式QRegExp
发布时间:2020-12-14 00:42:15 所属栏目:百科 来源:网络整理
导读:http://blog.csdn.net/ljt350740378/article/details/50149963 1、 QT中的QRegExp类实现了正则表达式的模式匹配。 //0123456789012345678901234567 QString str = "offsets: 1.23 .50 71.00 6.00" ; QRegExp rx( "d*.d+" ); // primitive floating poi
http://blog.csdn.net/ljt350740378/article/details/50149963 1、 QT中的QRegExp类实现了正则表达式的模式匹配。 //0123456789012345678901234567 QString str = "offsets: 1.23 .50 71.00 6.00"; QRegExp rx("d*.d+"); // primitive floating point matching int count = 0; int pos = 0; while ((pos = rx.indexIn(str, pos)) != -1)//9,14,18,24; count=4 {
++count;
QStringList list = rx.capturedTexts();//1.23,.50,71.00,6.00 pos += rx.matchedLength();//13,17,23,28 } 2、Qt中有两个不同类的正则表达式.
1) 元字符 . 匹配任意单个字符.例如,1.3 可能是1. 后面跟任意字符,再跟3 ^ 匹配字符串首. 例如,^12可能是123,但不能是312 $ 配字符串尾. 例如,12$可以是312,当不能是 123 [] 匹配括号内输入的任意字符.[123]可以为1,2 或3 * 匹配任意数量的前导字符. 例如,1*2可以为任意数量个1(甚至没有),后面跟一个2 + 匹配至少一个前导字符. 例如,1+2必须为一个或多个1,后跟一个2 ? 匹配一个前导字符或为空. 例如 1?2可以为2或这12 2)统配模式 通过 QRegExp::setPatternSyntax(QRegExp::Wildcard);可以将元字符设置为统配模式.在统配模式下,只有3个元字符可以使用.他们的功能没有变化. ? 匹配任意单个字符,例如,1?2可以为1,后面跟任意单个字符,再跟2 * 匹配任意一个字符序列. 例如,1*2,可以为1,后面跟任意数量的字符,再跟一个2 [] 匹配一个定义的字符集合. 例如,[a-zA-Z.]可以匹配 a到z之间任意一个字符和. [^a]匹配出小写a以外的字符. 3)转义序列 |