html前台检验特殊字符正则,【Qt编程】html特殊字符及正则表达式

1、html特殊字符的显示

我们知道html语言和C语言一样也有一些特殊字符,它们是不能正常显示的,必须经过转义,在网上可以查到如何显示这些字符,如下图所示:

a4c26d1e5885305701be709a3d33442f.png

上图给了最常用的特殊字符的显示,下面我们来实验一下:

首先在记事本中写入一句:

<font color=blue>程序例font>#include<stdio.h>

然后就文本后缀名改为.html后

,用浏览器打开,显示如下:

a4c26d1e5885305701be709a3d33442f.png我们从上图可以发现include后面没有显示,但是当我们在文本中写入:

<font color=blue>程序例font>#include<stdio.h>

<font color=blue>程序例font>#include<stdio.h>

时就能正常显示了。显示结果如下图:

a4c26d1e5885305701be709a3d33442f.png

我们知道Qt能够支持html语言,但是我在编写可以查询c语言函数(肯定有#include后面<>的特殊字符的显示问题)的时候发现使用上面的方法仍然不能显示特殊字符,后来灵机一动,就决定 用全角<>来代替半角<> 。这样就不会当成是特殊字符了,就可以正常显示了。半角和全角的转换只需要点击下图中的第3个按钮:

a4c26d1e5885305701be709a3d33442f.png

虽然说,使用全角后看起来不是很协调,但还看得过去,如果读者有什么好的方法,请不吝赐教。

2、正则表达式

接着上面的问题继续说,比如我有一个C语言函数词典库,我取其中一段来举例:

<font color=blue>程序例font>:<br>#include <span style="color:#ff0000;"><</span>stdio.h <span style="color:#ff0000;">>span><br>#include <span style="color:#ff0000;"><</span> stdlib.h <span style="color:#ff0000;">>span><br>int main(void)<br>

因为我们需要将上述半角的<>转换为全角的<>,并且 只是替换处于头文件的半角<> , 即字符串中为红色的部分 。当然当文件比较小的时候,可以手动查找替换,但是由于词典一半都有十几M,这时就必须使用正则表达式了。

在Qt中,使用了QRegExp来支持正则表达式。关于正则表达式的语法,网上都有很多教程,我就不细说了。从上面的实例字符串的内容,我们知道包含了几个头文件,所以我们在匹配时,要分别匹配各个头文件两边的半角<>, 即我们要使用非贪婪模式,否则就会从第一个头文件的。我们知道,在正则表达式中,非贪婪模式是由'?'来指定的,但是对于QRegExp类来说,?是不合法的。 在QRegExp中,要使用setMinimal函数来指定贪婪模式 。 setMinimal(true)就是非贪婪模式,setMinimal(false)就是贪婪模式。

通过上面两部分的讲解,就可以完成C语言函数库词典的显示了。下面通过代码实现,新建Qt

Gui应用程序,选择基类为QWidget,其中只需要修改widget.cpp里的内容即可(需要在widget.ui界面中,添加两个label,分别命名为label和label1)。

widget.cpp文件:

#include "widget.h"

#include "ui_widget.h"

#include<QString>

#include<QRegExp>

#include<QDebug>

#include<QLabel>

Widget::Widget(QWidget *parent) :

QWidget(parent),

ui(new Ui::Widget)

{

ui->setupUi(this);

QString str="<font color=blue>程序例font>:<br>#include <stdio.h ><br>#include < stdlib.h ><br>int main(void)<br>";

ui->label->setText(str); //由于Qt也能识别html格式,而< >是html的特殊字符,因此不处理的话,就会出现显示出错

QRegExp rx("#include (<(.*.h )>)");//正则表达式里的括号是为了获取匹配的内容

rx.setMinimal(true);//非贪婪模式

int pos=0;//从字符串的开始部分

for(int i=0;i<str.size();i++) {

pos=rx.indexIn(str,0);//得到匹配字符串的位置

while(pos!=-1)//匹配成功

{

str.replace(rx.cap(1),"<"+rx.cap(2)+">");//这里是进行替换,如果不明白rx.cap是什么,可以qDebug显示内容

pos=rx.indexIn(str,pos+rx.matchedLength());//从当前位置,继续往后进行匹配

}

}

ui->label1->setText(str);

}

Widget::~Widget()

{

delete ui;

}

程序运行结果如下:

a4c26d1e5885305701be709a3d33442f.png下面放一张查单词软件用到的特殊字符显示和使用正则表达式后的截图:

a4c26d1e5885305701be709a3d33442f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html 变量类型强制转换,html、js前台数据传到后台,spring复杂类型转换

html、js前台数据传到后台&#xff0c;spring复杂类型转换如果我有两个变量&#xff0c;变量名不一样&#xff0c;处理的规则也不一样&#xff0c;但是他们都是Date.class 类型&#xff0c; 这可怎么破。比如&#xff1a;InitBinderpublic void bindingPreparation(WebDataBind…

html盒模型中border的写法,HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手...

很多小伙伴在前端学习的时候&#xff0c;发现盒子模型默认为正方形。如何把盒子变成想要的模型呢&#xff1f; 首先我们来看一下默认的情况----.box{width: 100px;height: 100px;background-color: rgb(116, 51, 51);box-shadow:0 10px 10px red;text-align: center;position:a…

希捷银河声音大_每日观影之银河守门员( )

#银河守门员Вратарь Галактики#真心不错的科幻大片…尤其这剧情故事实在是俄国电影的一个很有突破性的亮点…基本可以说全方面凸显了俄罗斯的国情…比如高大上的部分完全不输欧美甚至有所超越领先都是要拯救世界而且还很壮烈拼搏的样子…然而百姓生活却显得很窘…

bat循环执行带参数_wxappUnpacker的bingo.bat脚本逐行解读

点击上方“蓝字”关注我们之前发过一篇文章小程序反编译工具在windows系统下的调用脚本提到了Windows平台下的脚本&#xff0c;但是对脚本没有做详细说明。本文就是针对脚本做的讲解。对批处理感兴趣的可以了解下。不会基础也没关系。下面我们进入正题。脚本解读第1行&#xff…

定值保险计算举例_保险公司的“开门红”又要来了!理财险真的值得买吗?

临近年末&#xff0c;各家保险公司都开始备战2020年的“开门红”。对于保险公司来说&#xff0c;“开门红全年红”&#xff0c;只要开门红的任务完成得好&#xff0c;那么今年大半年的保费就不用担心了&#xff0c;因此保险公司们对于这一战都十分重视。如果说“双11”、“双12…

html中post语句,html中post乱码的解决方法

html中post乱码的解决方法发布时间&#xff1a;2021-05-27 11:29:00来源&#xff1a;亿速云阅读&#xff1a;91作者&#xff1a;小新这篇文章主要介绍html中post乱码的解决方法&#xff0c;文中介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们一定要…

泸州田家炳中学2021高考成绩查询,2021年泸州中考线出来了吗

中考是人们升高中的必经之路&#xff0c;它虽然没有高考那样振奋人心&#xff0c;但是对于当时的人来说也算是一场最正规的考试。首先&#xff0c;不可否认的是中考是很重要的。虽然它不能对高考有着直接影响&#xff0c;但是却有着间接影响。在每年的六份左右出来。中考是很重…

django返回指定html文件,Django返回HTML文件的实现方法

前面我们简单的了解Django的一些工作原理&#xff0c;其中关于页面展示的内容&#xff0c;也全部都是视图(Views)返回的内容&#xff0c;那么我们也知道前端包括很多内容。如&#xff1a;HTML&#xff0c;CSS&#xff0c;JavaScript等以及各种插件&#xff0c;才具备完全的页面…

计算机网络纠错码,计算机网络:纠错

本文概述当数据从发送方发送到接收方时, 纠错码用于检测和纠正错误。纠错可以通过两种方式处理&#xff1a;向后纠错&#xff1a;发现错误后, 接收方会请求发送方重新传输整个数据单元。前向纠错&#xff1a;在这种情况下, 接收器使用纠错码自动纠正错误。单个附加位可以检测到…

扭矩大好还是马力大好_翡翠手镯圈口到底是买大好,还是买小好?行家告诉你...

现在的女性多数人都喜欢购买翡翠手镯、翡翠手链、翡翠戒面等&#xff0c;尤其对翡翠手镯不仅能表现出女性的知性优美&#xff0c;还对身体有一定的好处。翡翠手镯是翡翠价值中除了翡翠戒面外最高的二等翡翠。因为翡翠手镯除了那种开口式的镶嵌翡翠手镯其他的都是闭口的&#xf…

启动失败代码2_菲斯曼燃气壁挂炉故障代码大全及解决方法

菲斯曼燃气壁挂炉型号菲斯曼燃气壁挂炉故障代码大全及解决方法以&#xff1a;06故障代码&#xff1a;系统压力过低。设备的反映: 燃气器锁定。措施&#xff1a;检查系统水压&#xff0c;必要时补充加注供暖水。 0A故障代码&#xff1a;燃气压力过低。设备的反映: 燃气器锁定。措…

用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...

python语言设计一个类代表花,其中含2个对象属性,2class flower: def __init__ (self, name, shape): self.name name self.shape shape def showname (self): print(self.name) def showshape(self): print(self.shape)if __name__ __main__: f1flower("baihe",&q…

3不能安装库_不锈钢水槽如何安装?3个细节要注意,不能忽视,别被套路了

不锈钢水槽如何安装&#xff1f;3个细节要注意&#xff0c;不能忽视&#xff0c;别被套路了随着时代不断的进步。人们生活水平也是不断的提高。生活用品有时间来选&#xff0c;慢慢的步入了我们的日常中。你们觉得家中最重要的地方是什么呢&#xff1f;其实就是厨房&#xff0c…

vs工程 更换opencv版本_Windows下opencv源代码转化和编译

1. CMake工程转化工具下载。CMake是开源的跨平台安装(编译)工具&#xff0c;OpenCV开源代码想要用VS平台打开并编译得由它来做工程转化操作&#xff0c;最后利用VS平台编译出可在windows平台下运行的动态库文件DLL。CMake下载地址&#xff1a;https://cmake.org/download&#…

清理localstorage_关于Cookie、Session、LocalStorage、Cache-Control(摘录)

关于Cookie、Session、LocalStorage、Cache-Control&#xff0c;在总结前先了解一个过程&#xff1a;当用户在一个浏览器注册账号再登录&#xff0c;客户端和服务器发生了什么&#xff1f;一、发生了什么&#xff1f;1、用户打开注册页面&#xff0c;提交信息&#xff08;登录名…

联想340c笔记本cpu能升级吗_联想扬天威6 2021款酷睿版怎么样?评测值得买吗?从价格和配置看就知道了...

联想扬天威6笔记本电脑现在已经发行到最新的了&#xff0c;对新上市的这款联想扬天威6 2021款在配置&#xff0c;做工&#xff0c;性能全新升级了&#xff0c;目前是值得入手的一款轻薄办公本了&#xff0c;下面一起来详细了解下这款价格和配置情况&#xff0c;看看是不是您需要…

热泵精馏_异丙醇丙酮氢气化学热泵技术验证示范平台建成并完成调试

近日&#xff0c;中国科学院工程热物理研究所传热传质研究中心超强换热团队设计研发的我国首座“异丙醇-丙酮-氢气化学热泵技术验证示范平台”在江苏省高邮市江苏杨钢特钢有限公司建成。目前&#xff0c;平台已完成调试&#xff0c;各部件和系统性能均达到预期目标。该平台是国…

广东有哪些计算机自主招生的大专学校,广州大专自主招生有哪些学校

广州大专自主招生有哪些学校自主招生又称自主选拔&#xff0c;是高校选拔录取工作改革的重要环节。包括国家重点大学自主招生与高职自主招生两大类。以下小编为大家整理了广州大专院校自主招生的学校&#xff0c;希望对大家有所帮助&#xff01;广东专科自主招生学校名单1、广东…

华硕2020年显卡_TrendForce集邦咨询:2020年液晶显示器年出货成长率达5.4%,华硕成长率居冠、三星排名上升...

根据TrendForce集邦咨询旗下显示器研究处最新调查显示&#xff0c;受惠于疫情衍生的远距工作与教育、宅经济需求&#xff0c;加上北美地区消费力道持续强劲&#xff0c;推升以消费市场为主的液晶显示器品牌厂出货表现逆势上扬&#xff0c;连续三年呈现成长态势&#xff0c;预估…

计算机软件性能测试的过程,性能测试过程的规范

文档控制日期版本说明作者2006-4-71创建陈世明Ŀ设计ʵʩ分析总体分析工作内容生成文档人员需求表单测试过程阶段测试案例文档测试报告文件测试报告文件测试报告文件测试分析文件测试分析文件测试分析文件整个项目的分析报告性能测试基本上分为四个主要阶段:此阶段主要用于测试…