当前位置: 首页 > news >正文

云南网网站做家政网站公司名称

云南网网站,做家政网站公司名称,网站建设与制作模板,青岛网站设计建议i青岛博采正则表达式即一个文本匹配字符串的一种模式,Qt中使用QRegExp类进行模式匹配.主要应用:字符串验证,搜索,替换,分割..... 正则表达式中字符及字符集 c 匹配字符本身#xff0c;如a匹配a \c 跟在\后面的字符匹配字符本身#xff0c;但本表中下面指定的这些字符除外。 \a 匹…正则表达式即一个文本匹配字符串的一种模式,Qt中使用QRegExp类进行模式匹配.主要应用:字符串验证,搜索,替换,分割..... 正则表达式中字符及字符集 c 匹配字符本身如a匹配a \c 跟在\后面的字符匹配字符本身但本表中下面指定的这些字符除外。 \a 匹配ASCII的振铃 \f 匹配ASCII的换页 \n 匹配ASCII的换行   \r 匹配ASCII的回车 \t 匹配ASCII的水平制表符 \v 匹配ASCII的垂直制表符 \xhhhh 匹配Unicode字符对应的十六进制数 \0ooo 匹配八进制的ASCII/Latin1字符 . 匹配任意字符   \d 匹配任意一个数字 \D 匹配一个非数字 \s 匹配一个空白字符包括“\t”、“\n”、“\v”、“\f”、“\r”及“” \S 匹配一个非空白字符 \w 匹配一个单词字符包括任意字符数字下划线即A~Z,a~z,0~9中任意一个 \W 匹配一个非单词字符 \n 第n个反向引用 正则表达式中的量词 E? 匹配0次或1次等价于E{0,1} E 匹配1次或多次等价于E{1} E* 匹配0次或多次等价于E{0} E{n} 匹配n次 E{n,} 匹配至少n次 E{,m} 匹配至多m次 E{n,m} 匹配至少n次至多m次 正则表达式中的断言 ^ 标志字符串的开始。若匹配“^”则使用“\\^” $ 标志字符串的结尾。若匹配“$”则使用“\\$” \b 一个单词的边界 \B 一个非单词的边界。当\b为false则它为true 以上是在正则表达式中字符的使用解释,这不必要求能记下来,知道正确使用,在用到的时候能查阅使用就可以了.  一.QRegExp 1. exactMatch()精准匹配字符,匹配的字符完全相同时返回true,否则返回false. QRegExp reg(a); qDebug()匹配字符本身:reg.exactMatch(abc) //falsereg.exactMatch(a)endl; //true 2. exactMatch()精准匹配字符,数字. 通过上面的表格,我们可知: \d表示匹配任意一个数字,我们需要再加一个\进行转义.*表示匹配0次或多次.\D表示匹配一个非数字,{2}表示匹配2次. QRegExp reg0((\\d*\\D{2}));//()仅仅作为字符串组合.D{2}匹配2个字符.\\d*匹配任意个数字qDebug()匹配数字:reg0.exactMatch(183cm) //truereg0.exactMatch(183m) //falsereg0.exactMatch(72in); //true 3. 匹配通配符. *表示匹配0次或多次.使用setPatternSyntax()设置匹配语法,正则表达式支持通配符.它的参数有好几个枚举值,其中QRegExp::wildcard 正则表达式支持通配符;QRegExp::RegExp 正则表达式支持默认语法. QRegExp rx(*.txt);//设置匹配语法rx.setPatternSyntax(QRegExp::Wildcard);//正则表达式支持通配符//rx.setPatternSyntax(QRegExp::RegExp);//正则表达式支持默认语法qDebug()通配符匹配:rx.exactMatch(License.txt) // true exactMatch准确匹配rx.exactMatch(License.txt.bak)endl; //false 4. 断言,匹配单词边界. \b表示一个单词的边界. \\b(hello|Hello)\\b  表示单词hello|Hello前后都有一个其他的字符,这是单词的边界.使用indexIn()函数匹配字符,可以返回匹配到的字符的位置,-1表示匹配失败.返回的正整数表示匹配到的字符具体位置. QRegExp reg1;//设置匹配模式// \b代表一个单词的边界, \\b(hello|Hello)\\b 表示单词前后都有一个其他的字符reg1.setPattern(\\b(hello|Hello)\\b);qDebug()匹配多个单词:reg1.indexIn(helloEveryone) //-1表失败reg1.indexIn(Hmm hello everyone!) //匹配到的字符位置4reg1.indexIn(Hi girls! hello boys!) //匹配到的字符位置10endl; 5. 捕获匹配的文本.cap()函数捕获的文本不会捕获到空格.cap(0)捕获全部匹配的文本.cap(1)捕获匹配到的第一个文本.cap(2)捕获匹配到的第二个文本.下面代码,正因为cap()不会捕获到空格,所以匹配到的文本226 cm中,cap(1)捕获到226;cap(2)捕获到的是cm而不是空格. \d表示匹配任意一个数字.表示匹配1次或多次. (?:表示开始. \s表示匹配一个空白字符包括制表符“\t”、换行符“\n”、垂直制表符“\v”、换页符“\f”、回车符“\r”及“”.  *表示匹配0次或多次.  )表示结束. QRegExp regHeight((\\d)(?:\\s*)(cm|inch));//英尺//匹配文本int res regHeight.indexIn( YaoMing 226 cm);//文本匹配if(res-1){qDebug()文本捕获:cap(0):regHeight.cap(0) //捕获全部匹配文本 226cmcap(1):regHeight.cap(1) //捕获第一个 226cap(2):regHeight.cap(2);//捕获第二个 cm 6. 断言 ?!不紧跟才匹配.replace()替换字符.indexIn()找出匹配的字符位置. QRegExp reg2;//QRegExp reg2(面(?!包));//可在定义时直接设置 reg2(面(?!包)),也可通过setPattern()设置//设置匹配模式.reg2.setPattern(面(?!包));//面后不紧跟包才匹配,即面和包不能在一起QString str 面没了,吃面包也好,吃面食物也可以.;qDebug()strendl; //替换前:面没了,吃面包也好,吃面食物也可以.str.replace(reg2,意大利); //用意大利替换面qDebug()strendl; //替换后:意大利没了,吃面包也好,吃意大利食物也可以.qDebug()reg2.indexIn(你好,面还没好,你吃面包吗?)endl;//匹配到的位置是3 二.QRegularExpression 在Qt 5中引入了新的正则表达式类QRegularExpression. 1. match()部分匹配,并返回匹配到的字符位置.匹配到的字符起始位置:0-5,字符为hello QRegularExpression regExp(hello);//部分匹配,匹配一段字符结果 match().匹配到的字符起始位置:0-5,字符为helloqDebug()QRegularExpression 匹配字符:regExp.match(hello world!); 2.大小写不敏感匹配. \w表示匹配一个单词字符包括任意字符数字下划线即A~Z,a~z,0~9中任意一个.{3,8}表示最少匹配3次,最多匹配8次.A-Z表示可匹配范围大写字母A到Z. setPatternOption()匹配模式选项,它有非常多的匹配模式枚举值,其中常用的有: QRegularExpression::CaseInsensitiveOption表示大小写不敏感匹配; QRegularExpression::NoPatternOption表示不设置匹配模式,就是默认匹配模式. QRegularExpression::DotMatchesEverythingOption表示正则表达式中的.可以匹配任何字符包括换行符。如果不使用该选项则.只能匹配除了换行符以外的任何字符. QRegularExpression::MultilineOption用于指定正则表达式是否跨行匹配。如果启用了此选项则^和$元字符将匹配每行的开头和结尾而不是整个字符串的开头和结尾. ...... //regExp.setPattern([\\w]{3,8}); //设置匹配模式.匹配3到8个字符regExp.setPattern([A-Z]{3,8}); //设置匹配模式regExp.setPatternOptions(QRegularExpression::CaseInsensitiveOption);//设置模式选项.大小写不敏感(不区分大小写)qDebug()大小写不敏感匹配:regExp.match(hello); 3.captured()捕获文本. captured(0)完整捕获整个文本;captured(1)捕获第一个文本;以此类推.hasMatch()精准匹配.如果匹配成功则返回true. QRegularExpression reDate(^(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)$);//日/月/年QRegularExpressionMatch match0 reDate.match(01/10/1949);//匹配类if(match0.hasMatch()){//hasMatch()如果成功返回trueQString strMatch match0.captured(0); //完整匹配,捕获整个文本QString day match0.captured(1); //捕捉到第一个文本日QString month match0.captured(2); //捕捉到第二个文本到月QString year match0.captured(3); //捕捉到第三个文本到年qDebug()捕获文本:strMatch:strMatchendlday:dayendlmonth:monthendlyear:yearendl;} 4.部分匹配match().^表示字符串匹配开始,$表示字符串匹配结束. hasMatch()精准匹配.hasPartialMatch()部分匹配. //部分匹配QString sPattern;sPattern ^(Jan|Feb|Mar|Apr|May) \\d\\d \\d\\d\\d\\d$;//月 日 年QRegularExpression reDate1(sPattern);//初始化指定表达式QString ss(Apr 01);//不完整QRegularExpressionMatch match1;//用于接收匹配结果//reDate1.match().调用match()方法,返回的是QRegularExpressionMatch类型,所以用该类型接收match1 reDate1.match(ss, //需匹配的字符0, //匹配开始的位置QRegularExpression::PartialPreferCompleteMatch//匹配模式:部分匹配);bool bHasMatch match1.hasMatch(); //精准匹配bool bPartial match1.hasPartialMatch(); //部分匹配qDebug()bHasMatch //falsebPartial; // true 关于Qt正则表达式的分享就到这里了,all~~
http://www.w-s-a.com/news/860234/

相关文章:

  • 镇海住房和建设交通局网站跨境电商就是忽悠人的
  • 维修网站怎么做跨境电商发展现状如何
  • 手机网站设计公司皆选亿企邦桐乡市建设局官方网站
  • 企业培训 电子商务网站建设 图片山东省住房和城乡建设厅网站主页
  • 做酒招代理的网站赣icp南昌网站建设
  • 怎样做网站內链大连市建设工程信息网官网
  • 网站软件免费下载安装泰安网站建设收费标准
  • 部署iis网站校园网站设计毕业设计
  • 网站快慢由什么决定塘沽手机网站建设
  • 苏州那家公司做网站比较好装修队做网站
  • 外贸网站推广中山网站流量团队
  • 网站前端设计培训做一份网站的步zou
  • 网站备案拍照茶叶网页设计素材
  • wordpress 手机商城模板关键词优化软件有哪些
  • 网站301做排名python做的网站如何部署
  • 昆山做企业网站工信部网站 备案
  • 做英文的小说网站有哪些网站做qq登录
  • 湖州建设局招投标网站深圳广告公司集中在哪里
  • 重庆主城推广网站建设商城网站建设预算
  • 宁波品牌网站推广优化公司开发公司工程部工作总结
  • 长沙建站模板微信网站建设方案
  • 不让网站在手机怎么做门户网站 模板之家
  • 网站建设及推广图片wordpress文章摘要调用
  • 手机版网站案例全国信息企业公示系统
  • 模仿别人网站建设银行广州招聘网站
  • 沧州网站建设沧州内页优化
  • 代加工网站有哪些专门做网站关键词排名
  • 郑州做景区网站建设公司软件开发者模式怎么打开
  • 长沙企业网站建设哪家好做app一般多少钱
  • 南宁一站网网络技术有限公司网站开发技术应用领域